首页>Program>source

我想将来自两个不同data.frames的两个ggplots组合成一个图.在下面,您将找到代码.我想合并图1&2或图3&4。

df1 <- data.frame(p=c(10,8,7,3,2,6,7,8),
             v=c(100,300,150,400,450,250,150,400))
df2 <- data.frame(p=c(10,8,6,4), v=c(150,250,350,400))
plot1 <- qplot(df1$v, df1$p)
plot2 <- qplot(df2$v, df2$p, geom="step")
plot3 <- ggplot(df1, aes(v, p)) + geom_point()
plot4 <- ggplot(df2, aes(v, p)) + geom_step()

这一定很容易做到,但是以某种方式我无法使其正常工作.谢谢您的宝贵时间。

最新回答
  • 2021-1-9
    1 #

    正如Baptiste所说,您需要在geom级别指定data参数.要么

    #df1 is the default dataset for all geoms
    (plot1 <- ggplot(df1, aes(v, p)) + 
        geom_point() +
        geom_step(data = df2)
    )
    

    #No default; data explicitly specified for each geom
    (plot2 <- ggplot(NULL, aes(v, p)) + 
          geom_point(data = df1) +
          geom_step(data = df2)
    )
    

  • 2021-1-9
    2 #

    对我而言,唯一可行的解​​决方案是在geom_line中定义数据对象,而不是基础对象ggplot。

    赞:

    ggplot() + 
    geom_line(data=Data1, aes(x=A, y=B), color='green') + 
    geom_line(data=Data2, aes(x=C, y=D), color='red')
    

    代替

    ggplot(data=Data1, aes(x=A, y=B), color='green') + 
    geom_line() + 
    geom_line(data=Data2, aes(x=C, y=D), color='red')
    

    此处有更多信息

  • 2021-1-9
    3 #

    您可以使用此技巧仅使用qplot.使用内部变量 $mapping .您甚至可以将colour =添加到绘图中,以便将其也放置在映射中,然后您的绘图将自动与图例和颜色组合。

    cpu_metric2 <- qplot(y=Y2,x=X1) 
    cpu_metric1 <- qplot(y=Y1, 
                        x=X1, 
                        xlab="Time", ylab="%") 
    combined_cpu_plot <- cpu_metric1 + 
      geom_line() +
      geom_point(mapping=cpu_metric2$mapping)+
      geom_line(mapping=cpu_metric2$mapping)
    

  • sql server 2008:SQL MERGE语句更新数据
  • java:您何时需要显式调用超类构造函数?