我想在我的图中添加指数(+幂)(趋势)线。我正在使用 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
通过传递两个参数:
- 方法,例如
method="lm"
- 模型,例如
model = 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")
同样,拟合和绘制功率曲线就像将 x 尺度更改为日志一样简单:
ggplot(df, aes(temp, meta)) +
ylab("Metabolism") + xlab("Temperature") +
geom_point() +
theme_bw() +
scale_x_log10() +
scale_y_log10() +
stat_smooth(method="lm")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)