R hatası nasıl düzeltilir: sürekli ölçekte sağlanan ayrık değer
R’de karşılaşabileceğiniz bir hata:
Error: Discrete value supplied to continuous scale
Bu hata, ggplot2’deki bir eksene sürekli ölçek uygulamaya çalıştığınızda, o eksendeki değişken sayısal olmadığında ortaya çıkar.
Bu eğitimde bu hatanın nasıl düzeltileceği tam olarak açıklanmaktadır.
Hata nasıl yeniden oluşturulur?
R’de aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#create data frame
df = data. frame (x = 1:12,
y = rep(c('1', '2', '3', '4'), times= 3 ))
#view data frame
df
xy
1 1 1
2 2 2
3 3 3
4 4 4
5 5 1
6 6 2
7 7 3
8 8 4
9 9 1
10 10 2
11 11 3
12 12 4
Şimdi, Scale_y_continuous() argümanını kullanarak özel y ekseni ölçeğine sahip bir dağılım grafiği oluşturmaya çalıştığımızı varsayalım:
library (ggplot2)
#attempt to create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
geom_point() +
scale_y_continuous(limits = c(0, 10))
Error: Discrete value supplied to continuous scale
Y ekseni değişkenimiz sayısal değişken yerine karakter olduğu için hata alıyoruz.
Bunu class( ) fonksiyonunu kullanarak doğrulayabiliriz:
#check class of y variable
class(df$y)
[1] “character”
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu, dağılım grafiğini oluşturmadan önce Y ekseni değişkenini sayısal bir değişkene dönüştürmektir:
library (ggplot2)
#convert y variable to numeric
df$y <- as. numeric (df$y)
#create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
geom_point() +
scale_y_continuous(limits = c(0, 10))
Scale_y_continuous() yöntemini karakter değişkeni yerine sayısal değişkenle kullandığımız için herhangi bir hata almadığımızı unutmayın.
Scale_y_continuous() işlevine ilişkin çevrimiçi belgelerin tamamını burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde ggplot2’de diğer genel çizim işlevlerinin nasıl gerçekleştirileceği açıklanmaktadır:
Ggplot2’de eksen sonları nasıl ayarlanır
Ggplot2’de eksen etiketleri nasıl kaldırılır
Ggplot2’de eksen etiketleri nasıl döndürülür