5

我有两个具有相同 x 轴的图 - x 的范围都是 0-5。我想将它们组合到一个图表中,但我没有找到之前的示例。这是我得到的:

c <- ggplot(survey, aes(often_post,often_privacy)) + stat_smooth(method="loess")
c <- ggplot(survey, aes(frequent_read,often_privacy)) + stat_smooth(method="loess")

我怎样才能将它们结合起来?y 轴是“经常隐私”,在每个图中,x 轴是“经常发布”或“经常阅读”。我想我可以轻松地(以某种方式)组合它们,因为它们的范围都是 0-5。

非常感谢!

4

3 回答 3

10

Ben 的解决方案的示例代码。

#Sample data
survey <- data.frame(
  often_post = runif(10, 0, 5), 
  frequent_read = 5 * rbeta(10, 1, 1), 
  often_privacy = sample(10, replace = TRUE)
)
#Reshape the data frame
survey2 <- melt(survey, measure.vars = c("often_post", "frequent_read"))
#Plot using colour as an aesthetic to distinguish lines
(p <- ggplot(survey2, aes(value, often_privacy, colour = variable)) + 
  geom_point() +
  geom_smooth()
)
于 2012-06-28T12:36:10.087 回答
4

您可以使用+在同一ggplot对象上组合其他图。例如,要为两对列绘制点和平滑线:

ggplot(survey, aes(often_post,often_privacy)) + 
geom_point() +
geom_smooth() + 
geom_point(aes(frequent_read,often_privacy)) + 
geom_smooth(aes(frequent_read,often_privacy))
于 2012-06-28T12:23:04.743 回答
0

试试这个:

df <- data.frame(x=x_var, y=y1_var, type='y1') 
df <- rbind(df, data.frame(x=x_var, y=y2_var, type='y2'))
ggplot(df, aes(x, y, group=type, col=type)) + geom_line()

在此处输入图像描述

于 2016-10-14T05:23:46.210 回答