r - 在同一个图上绘制多列
问题描述
mydf <- data.frame(
id = 1:12,
x = rnorm(12),
y = rnorm(12),
z = rnorm(12)
)
# base r
plot(mydf$x)
plot(mydf$y)
plot(mydf$z)
其中一个看起来像
ggplot 中的等价物是什么,如果有的话,我可以在一个图上显示所有 3 个,使用颜色将它们分开吗?也许使用一条线?
mydf %>% ggplot(aes(x)) + geom_point()
Error: geom_point requires the following missing aesthetics: y
解决方案
pivot_longer
我们可以使用并立即绘制“长”格式
library(dplyr)
library(tidyr)
library(ggplot2)
mydf %>%
mutate(rn = row_number()) %>%
pivot_longer(cols = -rn) %>%
ggplot(aes(x = rn, y = value, color = name)) +
geom_point()
它也可能更好,geom_line
因为它会更容易显示趋势
mydf %>%
mutate(rn = row_number()) %>%
pivot_longer(cols = -rn) %>%
ggplot(aes(x = rn, y = value, color = name)) +
geom_line()
或base R
与matplot
matplot(as.matrix(mydf), type = 'l', col = c('red', 'green', 'blue'))
legend("topright", legend = names(mydf), fill = c('red', "green", "blue"))
推荐阅读
- php - POSTMAN 和 PHP CURL 用于带有 -L 选项命令的 Text-raw
- wordpress - 如何在我的页面模板上使用 archive-product 作为模板?
- python - python中变量的继承行为
- python - 基于键动态加入列表元素
- android - Flutter:暂时“A RenderFlex 在右侧溢出 13 个像素”然后消失 - 行小部件
- overlay - 如何在 Google 地球引擎中叠加两个栅格?
- reactjs - React-tabs 的自定义样式
- squeak - 方法未添加到 methodDict
- javascript - 选择带有用javascript编写的输入的文件后,表单中的提交按钮不起作用
- business-intelligence - 公式的 SAP Web Intelligence 翻译