首页 > 解决方案 > 如何在ggplot2中的X和Y下绘制多列

问题描述

data <- structure(list(A_w = c(0, 0.69, 1.41, 2.89, 6.42, 13.3, 25.5, 
  36.7, 44.3, 46.4), E_w = c(1.2, 1.2, 1.5, 1.6, 1.9, 2.3, 3.4, 
    4.4, 10.6, 16.5), A_e = c(0, 0.18, 0.37, 0.79, 1.93, 4.82, 11.4, 
      21.6, 31.1, 36.2), E_e = c(99.4, 99.3, 98.9, 98.4, 97.1, 93.3, 
        84.7, 71.5, 58.1, 48.7)), row.names = c(NA, -10L), class = "data.frame")
data
#>      A_w  E_w   A_e  E_e
#> 1   0.00  1.2  0.00 99.4
#> 2   0.69  1.2  0.18 99.3
#> 3   1.41  1.5  0.37 98.9
#> 4   2.89  1.6  0.79 98.4
#> 5   6.42  1.9  1.93 97.1
#> 6  13.30  2.3  4.82 93.3
#> 7  25.50  3.4 11.40 84.7
#> 8  36.70  4.4 21.60 71.5
#> 9  44.30 10.6 31.10 58.1
#> 10 46.40 16.5 36.20 48.7

reprex 包于 2021-05-31 创建 (v2.0.0 )

我正在尝试使用所有 A 值作为 X 和 Es 作为 Y 来绘制这些数据。我怎样才能将 a)这两列都绘制在 ggplot2 上,或者 b)重新排列这个数据框以将 A 列和 E 列组合成一个最终数据框只有两列,行数是图片的 2 倍?

感谢您的帮助,我是初学者(显然)

为清晰而编辑:A_e 和 E_e 值保持成对很重要,类似于 A_w 和 E_w 值保持成对的方式。最终结果图应该类似于这张图片的橙色和蓝色线条,但我正在尝试在学习 R 时复制它。 剧情决赛

目前,当分成两个 2x10 的数据帧时,我能够分别绘制每个

     A_w  E_w
1   0.00  1.2
2   0.69  1.2
3   1.41  1.5
4   2.89  1.6
5   6.42  1.9
6  13.30  2.3
7  25.50  3.4
8  36.70  4.4
9  44.30 10.6
10 46.40 16.5

第1部分

和第二个情节

# A tibble: 10 x 2
     A_e   E_e
   <dbl> <dbl>
 1  0     99.4
 2  0.18  99.3
 3  0.37  98.9
 4  0.79  98.4
 5  1.93  97.1
 6  4.82  93.3
 7 11.4   84.7
 8 21.6   71.5
 9 31.1   58.1
10 36.2   48.7

情节第 2 部分

但我的最终目标是让它们都在同一个图上,就像上面的 Excel 图表(橙色 + 蓝色图表)一样。

标签: rggplot2multiple-columns

解决方案


你可以试试这个

data <- data.frame(
                 A_w = c(0,0.69,1.41,2.89,6.42,
                         13.3,25.5,36.7,44.3,46.4),
         E_w = c(1.2, 1.2, 1.5, 1.6, 1.9, 2.3, 3.4, 4.4, 10.6, 16.5),
                 A_e = c(0,0.18,0.37,0.79,1.93,
                         4.82,11.4,21.6,31.1,36.2),
                 E_e = c(99.4,99.3,98.9,98.4,
                         97.1,93.3,84.7,71.4,58.1,48.7)
        )

library(tidyverse)
data %>% pivot_longer(everything(), names_sep = '_', names_to = c('.value', 'type')) %>%
  ggplot(aes(x = A, y = E, color = type)) +
  geom_point() +
  geom_line()

reprex 包于 2021-05-31 创建 (v2.0.0 )


推荐阅读