gpt4 book ai didi

r - 将 exp/power 趋势线添加到 ggplot

转载 作者:行者123 更新时间:2023-12-02 02:11:03 24 4
gpt4 key购买 nike

我想在我的图中添加指数(+幂)(趋势)线。我正在使用 ggplot2 包。

我有这样的东西(只是有更多的数据):

require(ggplot2)

df <-read.table("test.csv", header = TRUE, sep = ",")
df
meta temp
1 1.283 6
2 0.642 6
3 1.962 6
4 8.989 25
5 8.721 25
6 12.175 25
7 11.676 32
8 12.131 32
9 11.576 32

ggplot(df, aes(temp, meta)) +
ylab("Metabolism") + xlab("Temperature") +
geom_point() +
theme_bw() +
scale_x_continuous(limits = c(0, 35)) +
scale_y_log10()

我知道这应该用指数函数来表达 - 所以我的问题是如何广告最佳的“指数”拟合?同样,是否也可以进行电源配合?

stat_smooth() 函数有这个机会吗?或者我应该使用 ggplot2 包中的其他函数吗?

最佳答案

您可以通过传递两个参数来指定要拟合的模型作为 stat_smooth 的参数:

  • 方法,例如方法=“lm”
  • 型号,例如模型 = log(y) ~ x

ggplot2 首先进行比例转换,然后拟合模型,因此在您的示例中,您只需添加

+ stat_smooth(method="lm")

到你的情节:

library(ggplot2)
ggplot(df, aes(temp, meta)) +
ylab("Metabolism") + xlab("Temperature") +
geom_point() +
theme_bw() +
scale_x_continuous(limits = c(0, 35)) +
scale_y_log10() +
stat_smooth(method="lm")

enter image description here

<小时/>

类似地,拟合和绘制功率曲线就像将 x 尺度更改为对数一样简单:

ggplot(df, aes(temp, meta)) + 
ylab("Metabolism") + xlab("Temperature") +
geom_point() +
theme_bw() +
scale_x_log10() +
scale_y_log10() +
stat_smooth(method="lm")

enter image description here

关于r - 将 exp/power 趋势线添加到 ggplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10528631/

24 4 0