r - 如何在具有facets的组中添加一条最适合ggplot的线

标签 r ggplot2

我有一个包含以下变量的数据集(水果、价格、国家/地区、有机/非有机、位置)。

我想要一个像这里一样的图,但添加一件事 - 一条最佳拟合线,贯穿有机/非有机、位置和水果的每个分组的点。

情节 -> https://dl.dropboxusercontent.com/u/3803117/stackoverflow.jpeg enter image description here 例如,在“有机、城市”方 block 中,我想要 4 条最适合的线 - 一条以苹果、香蕉、樱桃、枣子等为中心。

这是我用来生成绘图的代码。

p <- ggplot(data,aes(factor(fruit),price)) + 
  geom_violin(aes(fill=Country,trim=FALSE)) + 
  geom_boxplot(aes(fill=Country),position=position_dodge(0.9),width=.1) + 
  geom_jitter(alpha=0.5) + 
  facet_wrap(organic~location) +
  xlab("Fruit") +
  ylab("Price") +
  labs(fill="Country")

这是一个示例数据集,如果它可能有帮助的话 -> https://dl.dropboxusercontent.com/u/3803117/stackoverflow.csv

提前非常感谢您的帮助!

最佳答案

geom_abline 文档没有准确指定您要查找的内容吗?请参阅“#线性模型的斜率和截距”部分

http://docs.ggplot2.org/current/geom_abline.html

编辑:刚刚检查并意识到没有没有 SE 频段的示例,但您可以通过设置 SE=FALSE 轻松禁用它们:

p <- qplot(wt, mpg, data = mtcars)
p <- p + geom_smooth(aes(group=cyl), method="lm", se=FALSE)
p <- p + facet_grid(cyl~.)
print(p)

如果您提供了示例数据集,那么我们会更轻松地为您提供帮助。

编辑2: 以下内容可能更接近OP的设想。然而,我想说这没有意义,因为国家(或水果,或类型,或任何东西)的排序通常不能用于制定有用的线性关系:

p <- ggplot(data,aes(factor(country),price)) + 
  geom_violin(aes(fill=country,trim=FALSE)) + 
  geom_boxplot(aes(fill=country),position=position_dodge(0.9),width=.1) + 
  geom_jitter(alpha=0.5) + 
  facet_wrap(organic~location+fruit) +
  xlab("Fruit") +
  ylab("Price") +
  labs(fill="country")
p <- p + geom_smooth(aes(group=1,color=country), method="lm", se=FALSE)
p

关于r - 如何在具有facets的组中添加一条最适合ggplot的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21103326/

相关文章:

R:我怎样才能拟合一个对系数有约束的回归?

r - 如何在R中找到两个密度与ggplot2的交集

r - 时间序列数据的多个 x 轴标签

r - 如何使用ggplot2绘制NA间隙

r - 使用 `jitterdodge` 时在 ggplot 中对齐点和误差线

r - 将包含列表的列旋转得更宽

mysql - 使用 RMySQL 关闭事件连接

rowDiffs 类型函数,保留 "row 1"作为每组的引用行

r - 如果所有汇总值均为 NA,则 dplyr 汇总保留 NA

r - 使用 ggplot2 出现意外的 Walker 别名表输出