如何为每个组应用geom_smooth()?

时间:2016-11-15 01:56:59

标签: r ggplot2

如何为每个群组申请&:first-child.class

以下代码使用geom_smooth(),因此请在单独的图表中绘制每个组 我想整合图表,并获得一个图表。

facet_wrap()

2 个答案:

答案 0 :(得分:10)

您必须将所有变量放在ggplot aes()中:

ggplot(data = iris, aes(x = Sepal.Length,  y = Petal.Length, color = Species)) +
  geom_point() +
  geom_smooth(method = "nls", formula = y ~ a * x + b, se = F,
              method.args = list(start = list(a = 0.1, b = 0.1)))

enter image description here

答案 1 :(得分:4)

将映射.parent { h4 { &:first-child { // styles } } } 添加到aes(group=Species)调用将执行您想要的操作。

基本情节:

geom_smooth()

library(ggplot2); theme_set(theme_bw()) g0 <- ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point(aes(color = Species))

geom_smooth
无论原始数据集中调用了哪些变量,

g0 + geom_smooth(aes(group=Species), method = "nls", formula = y ~ a * x + b, se = FALSE, method.args = list(start = list(a = 0.1, b = 0.1))) 始终以formulax表示:

  • 公式中的y变量是指映射到x轴的变量(x
  • Sepal.Length变量到y轴变量(y

该模型单独与数据中的组{({1}})匹配。

如果添加具有相同效果的颜色映射(对于因子变量)(根据用于区分geoms的所有映射的交集隐式定义组),则行将适当地着色。

Petal.Length

正如@HubertL指出的那样,如果你想对所有的geoms应用相同的美学,你可以把它们放在原来的Species电话中......

顺便说一句,我认为实际上你想要使用更复杂的 g0 + geom_smooth(aes(colour=Species), method = "nls", formula = y ~ a * x + b, se = FALSE, method.args = list(start = list(a = 0.1, b = 0.1))) 模型 - 否则你可以使用ggplot并省去自己的麻烦......