如何在具有facet的组中添加最适合ggplot的行

时间:2014-01-13 23:19:39

标签: r ggplot2

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

我想要一个类似于这里的情节,但添加了一个东西 - 最适合的线条贯穿每个有机/非有机,位置和水果分组。

情节 - > https://dl.dropboxusercontent.com/u/3803117/stackoverflow.jpeg enter image description here 例如,在“有机,城市”广场,我想要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")

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

非常感谢所有的帮助!

1 个答案:

答案 0 :(得分:4)

geom_abline文档不能准确指定您要查找的内容吗?请参阅“#Slope和截面线性模型”部分

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)

如果您提供了样本数据集,则可以更轻松地为您提供帮助。

EDIT2: 以下可能更接近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