我试图创建一个具有直的趋势线的条形图,但无法显示趋势线。
我使用的是ggplot2包,下面是我当前的条形图代码:
library(ggplot2)
ggplot(mydf, aes(x=round, y=means, fill=round)) +
geom_smooth(method=lm, se=FALSE, col="black", linewidth=2) +
geom_bar(stat="identity", color="black", position=position_dodge()) +
geom_errorbar(aes(ymin=means-se, ymax=means+se), width=.2, position=position_dodge(.9),) +
theme_classic() +
xlab("Round") +
ylab("Bead Mass (g)") +
ggtitle("Verbal") +
theme(legend.position="none") +
geom_smooth(method=lm, se=FALSE, col="black", linewidth=2)
我不知道geom_smooth()部分为什么不工作。有什么想法吗?请参见图表查看输出
2条答案
按热度按时间bjg7j2ky1#
有两件事会阻止绘制平滑,第一件事是x轴看起来是一个因子,因此需要将其转换为一个数值变量ke,第二件事是ggplot会自动将不同的填充(来自一个因子)视为单独的组,因此需要为平滑层覆盖这一点,给出:
7vux5j2d2#
绘图的离散填充比例显示用于
x
和fill
的round
变量不是numeric
,从而使geom_smooth
无法正常工作。问题重现
溶液
x
变量转换为全局aes
中的numeric
,并删除填充美学geom_bar
aes
中指定fill
美学规范