R 如何在ggplot中用相同的x绘制不同的y?

R 如何在ggplot中用相同的x绘制不同的y?,r,ggplot2,R,Ggplot2,假设我有一个数据框,其中有一列x和其他变量y1,y2。。。一切都在继续 在两个不同的图形上绘制x~y1和y2的最快方法是什么,但就像它们在facet_wrap中一样 我知道我可以构建多个ggplot并使用grid.arrange,但这样我就可以为每个y反复粘贴相同的代码,除了y的索引之外没有任何更改,但是可以使用facet吗 看起来很简单,但我在面方面遇到了问题。这类问题通常与重塑数据有关。格式应为,数据格式为宽格式。 我将使用内置数据集iris的前3列作为示例数据集 library(ggplo

假设我有一个数据框,其中有一列x和其他变量y1,y2。。。一切都在继续

在两个不同的图形上绘制x~y1和y2的最快方法是什么,但就像它们在facet_wrap中一样

我知道我可以构建多个ggplot并使用grid.arrange,但这样我就可以为每个y反复粘贴相同的代码,除了y的索引之外没有任何更改,但是可以使用facet吗


看起来很简单,但我在面方面遇到了问题。

这类问题通常与重塑数据有关。格式应为,数据格式为宽格式。 我将使用内置数据集iris的前3列作为示例数据集

library(ggplot2)

df1 <- iris[1:3]
names(df1) <- c("x", "y1", "y2")

df1_long <- reshape2::melt(df1, id.vars = "x")
head(df1_long)

ggplot(df1_long, aes(x, value, colour = variable)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  facet_grid(rows = vars(variable))

你在找这样的东西吗?不是真的,我可以画x和y1,然后我想把x和y2画在不同的图上,把这两个图并排或放在一起,就像在facet_wrap中一样,不幸的是,这只适用于分类变量。我可以使用grid.arrangep1,p2,nrow=1,其中p1和p2是通过ggplot构建的,但我不想重复p1和p2的相同代码,它们只是因为这段代码aesx=x,y=y1不同。。。我想知道ggplot是否能够使用相同的参数重复绘制,但只是更改y。谢谢,所以基本上你可以将变量转换为标签并重复所有观察结果。@lucmobz是的,就是这样。重复的id变量可以有多个。请注意,如果没有facet_网格,代码将仍然适合两条回归线,因为color=变量美学将df分成两条。