首页 > 解决方案 > 具有来自两个结构的数据的 ggplot

问题描述

我正在尝试使用 R 绘制位于两个不同框架中的相应数据。最后,我应该得到一个显示 (x1 vs y1)、(x2 vs y2) 等 n 行的图。

下面是我作为 MWE 的尝试,但它并没有绘制所有线条,而且它并不优雅。任何有关如何融化或收集数据以按摩数据的建议将不胜感激。

X = data.frame(x1=c(1 , 2,3,4,5),
               x2=c(1 , 4,3,4,5),
               x3=c(14,12,3,4,5))

Y = data.frame(y1=c(1, 2, 3,4,5),
               y2=c(1, 2,10,4,5),
               y3=c(1,21,10,4,5))

a = cbind(X,Y)

gg<-ggplot(a)+
    geom_line(aes(x=a[,1] , y=a[,1+3], col = colors[1], lwd=1 ))

 for(i in 2:3){
     gg<- gg + 
     geom_line(aes(x=a[ ,i] ,y = a[,i+3], col = colors[i], lwd=1 ))
}

gg

标签: rggplot2

解决方案


@Peter 方法的变化

cbind(X,Y) %>%
  mutate(row = row_number()) %>%
  pivot_longer(-row, names_to = c("col", "series"), names_pattern = "(.)(.)") %>%
  pivot_wider(names_from = col, values_from = value) %>%
  ggplot(aes(x, y, color = series)) + 
  geom_path()

推荐阅读