R エラーの修正方法: 連続スケールで提供される離散値
R で発生する可能性のあるエラーは次のとおりです。
Error: Discrete value supplied to continuous scale
このエラーは、ggplot2 の軸に連続スケールを適用しようとしたときに、その軸の変数が数値でない場合に発生します。
このチュートリアルでは、このエラーを修正する方法を正確に説明します。
エラーを再現する方法
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
ここで、 scale_y_continuous()引数を使用して、カスタムの y 軸スケールで散布図を作成しようとするとします。
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 軸変数が数値変数ではなく文字であるため、エラーが発生します。
これはclass( ) 関数を使用して確認できます。
#check class of y variable
class(df$y)
[1] “character”
エラーを修正する方法
このエラーを修正する最も簡単な方法は、散布図を作成する前に Y 軸変数を数値変数に変換することです。
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()を使用したため、エラーが発生していないことに注意してください。
scale_y_continuous() 関数の完全なオンライン ドキュメントは、ここで見つけることができます。
追加リソース
次のチュートリアルでは、ggplot2 で他の一般的なプロット関数を実行する方法を説明します。
ggplot2で軸ブレークを設定する方法
ggplot2で軸ラベルを削除する方法
ggplot2 で軸ラベルを回転する方法