r - 如何在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
和第二个情节
# 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
但我的最终目标是让它们都在同一个图上,就像上面的 Excel 图表(橙色 + 蓝色图表)一样。
解决方案
你可以试试这个
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 )
推荐阅读
- json - 使用 EVReflection 的 JSON 解析非常慢,具体取决于 iOS 设备
- mysql - 为什么睡眠功能在算术运算中执行?
- amazon-web-services - IAM 政策允许 SMS 发布但不拒绝所有 SNS
- python-3.x - 尽管使用不同的 random_state 值,为什么 stratifiedkfold 会生成相同的拆分?
- android - 以编程方式下载和启动应用程序时解析错误
- serialization - System.InvalidProgramException:公共语言运行时检测到无效程序
- import - 我如何导入与父亲模型相关的儿子模型?
- scala - 序列化 Guava 的 MinMaxPriorityQueue
- php - Laravel:如果手动输入路由/网址,则看不到 404
- jenkins - NuGet 还原失败的 JetBrains 包