R言語描画-数式とR2を追加(Ⅱ)
序文
手書きのブログがそんなに注目されるとは思っていませんでした!
一日の訪問数は直接千を超え、偉大なる神に勇気づけられました!(興奮)
誰もがこのタイトルに惹かれていると推定されています。(はは)
案の定、TianxiakuRは長い間数式を追加してきました。
ただし、2番目のブログにはまだまだ完璧ではない詳細がたくさんあります。今回はコードと詳細な説明を添付します。
将来的には、バッジは通常の時間に絵を描くためのいくつかのヒントを共有します。R言語が好きな友達は大歓迎です。
次に、トピックに直接移動します。
テキスト
通常、Rgeom_smooth()
を使用して一連の滑らかな曲線関数を追加します。
しかし、いくつかの参考書に記載されている方法は実際には制限されており、使いやすいものではありません。
初めてRを使って描いたときもバッジが不快で、長い間コードを探していました。
今回は、このstat_function()
機能を直接使って描画を完成させます。
まず、コードを入力します。
a <- c(1, 2, 3, 4, 5)
b <- c(5, 4, 3, 2, 1)
c <- data.frame(a, b)
library(ggplot2)
p <- ggplot(data = c, aes(x = a, y = b)) +
geom_point() +
geom_smooth(method = "lm", color = "red")
p
図1は次のとおりです。
フィッティングにより、関数は次のようになります。y = -x + 6、R ^ 2 = 1
stat_function()
カーブフィッティング機能を演出できます。
コードは次のように表示されます。
p <- ggplot(data = c, aes(x = a, y = b)) +
geom_point() +
stat_function(fun = function(x)-1*x+6, color = "orange", size = 1)
p
図2は次のとおりです。
最後に、annotate()
関数を使用してテキストを追加します。
p <- ggplot(data = c, aes(x = a, y = b)) +
geom_point() +
stat_function(fun = function(x)-1*x+6, color = "orange", size = 1) +
annotate("text", x = 4, y = 5, parse = TRUE,
label = "y == -x+6", size = 4) +
annotate("text", x = 4, y = 4.5, parse = TRUE,
label = "atop(R^2==1)", size = 4)
p
図3は次のとおりです。
補足1:添え字コード
図3では、上付きコードのatop()
関数も使用しました。
同時に、添え字のコードもここに示されています。
p <- ggplot(data = c, aes(x = a, y = b)) +
geom_point() +
stat_function(fun = function(x)(-1)*x+6, color = "orange", size = 1) +
annotate("text", x = 4, y = 5, parse = TRUE,
label = "y == -x+6", size = 4) +
annotate("text", x = 4, y = 4.5, parse = TRUE,
label = "atop(R^2==1)", size = 4) +
annotate("text", x = 4, y = 4, parse = TRUE, #下标
label = "x[1]==x[2]", size = 4)
p
示されているように:
補足2 その他の機能
他の関数の場合は、次のように直接コードを記述します。
#指数函数
stat_function(fun = function(x)1.5015*exp(x*(-0.009)), size = 1) +
annotate("text", x = 25, y = 2.5, parse = TRUE, label = "y == 1.5015*e^{-0.009*x}")
#二次函数:
stat_function(fun = function(x)-90.613*x+630.42*x^2+4.3696, size = 1) +
annotate("text", x = 0.09, y = 2.51, parse = TRUE, label = "y == 630.42*x^{2}-90.613*x+4.3696")
#注意:这里的上标使用{
}表达
わからない場合は、コメント欄でご相談ください。批判・訂正もお願いします。