Cara memperbaiki kesalahan r: nilai diskrit disediakan pada skala berkelanjutan
Kesalahan yang mungkin Anda temui di R adalah:
Error: Discrete value supplied to continuous scale
Kesalahan ini terjadi saat Anda mencoba menerapkan skala berkelanjutan ke sumbu di ggplot2, ketika variabel pada sumbu tersebut bukan numerik.
Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki bingkai data berikut di R:
#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
Sekarang misalkan kita mencoba membuat plot sebar dengan skala sumbu y khusus menggunakan argumen scale_y_continuous() :
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
Kami menerima kesalahan karena variabel sumbu Y kami adalah karakter, bukan variabel numerik.
Kita dapat mengkonfirmasi ini menggunakan fungsi class( ) :
#check class of y variable
class(df$y)
[1] “character”
Bagaimana cara memperbaiki kesalahan tersebut
Cara termudah untuk memperbaiki kesalahan ini adalah dengan mengubah variabel sumbu Y menjadi variabel numerik sebelum membuat plot sebar:
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))
Perhatikan bahwa kami tidak menerima kesalahan apa pun karena kami menggunakan scale_y_continuous() dengan variabel numerik, bukan variabel karakter.
Anda dapat menemukan dokumentasi online lengkap untuk fungsi scale_y_continuous() di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan fungsi plot umum lainnya di ggplot2:
Cara mengatur jeda sumbu di ggplot2
Cara menghapus label sumbu di ggplot2
Cara memutar label sumbu di ggplot2