r - ggplot2 (R) 不会绘制多列
问题描述
我正在尝试使用 ggplot2 绘制不同的系列(列)。但我似乎无法制作情节。
这是我的数据的样子(从 1976 年到 2017 年):
Year Atlantic Prairie Ter Ontario BC Quebec Canada
1976 1.2638857 0.4546927 NA 0.6815441 0.7264928 1.0050021 0.8424173
1977 1.1722437 0.4819217 NA 0.5951699 0.7264113 0.8883986 0.7701221
1978 1.1990781 0.4870121 NA 0.5737307 0.7684976 0.8672100 0.7604538
1979 1.1287050 0.4333563 NA 0.5194313 0.6579418 0.8407571 0.7086144
1980 1.1133467 0.4198007 NA 0.5313260 0.5992944 0.7677071 0.6745683
这是我从 SO 中的类似问题中获得的代码。
library("reshape2")
coverage <- read.xlsx(. . .)
Tall_data <- melt(coverage , id.vars = "Year", variable.name = "series") #Step1: Rearrange data in tall format
ggplot(Tall_data, aes(Year,value)) + geom_line(aes(colour = series)) #Step2: Plot
在第 1 步中,R 给了我消息:“属性在度量变量中不相同;它们将被删除”
我附上了制作的情节 - 这很奇怪。
请注意,“领土”列中的一些数据为 NA(从 1976 年到 2003 年)。
我知道我可以这样做:
ggplot(coverage, aes(Year)) +
labs(y= "The B/U Ratio") +
geom_line(aes(y=Atlantic_Provinces), colour="green") +
geom_line(aes(y=Prairie_Provinces), colour="red") + ...
但我希望能够用一个命令来完成。此外,单独进行它们不会给我传说名称。我查看了其他 R 指南,这些指南或多或少暗示了我使用过的相同代码。但由于某种原因,它对我不起作用。
这里有两个类似的帖子:
如何在 R 中绘制数据框的所有列- 这是我遵循的。
解决方案
这是正确的方向吗?
dat <-
"Year Atlantic Prairie Ter Ontario BC Quebec Canada
1976 1.2638857 0.4546927 NA 0.6815441 0.7264928 1.0050021 0.8424173
1977 1.1722437 0.4819217 NA 0.5951699 0.7264113 0.8883986 0.7701221
1978 1.1990781 0.4870121 NA 0.5737307 0.7684976 0.8672100 0.7604538
1979 1.1287050 0.4333563 NA 0.5194313 0.6579418 0.8407571 0.7086144
1980 1.1133467 0.4198007 NA 0.5313260 0.5992944 0.7677071 0.6745683
"
df <- read.delim(textConnection(dat), sep="")
library(tidyverse)
tall_df <- pivot_longer(df,
cols = c("Atlantic", "Prairie", "Ter", "Ontario", "BC", "Quebec", "Canada"),
names_to = "region"
)
ggplot(tall_df, aes(x = Year, y = value, color=region)) +
geom_line()
推荐阅读
- angularjs - TypeError:无法在 angular.min.js:62 处读取 f (angular.min.js:62) 处未定义的属性 'childNodes'"
- angular - 在拦截器上获取令牌时出错 - 键入“Promise”
>>' 不可分配给类型 'Observable >' - com - 在 VSTO 中获取图片和内容占位符中的 SelectedShape 类型失败
- javascript - 检查每个 id 是否在数组中都有一个现有对象
- c# - Entity Framework 6 连接字符串问题
- php - 为什么我的大字节字符串会覆盖文件顶部的文本?
- mysql - 如何在 MySQL 中获取具有特定行/值的每个人的 ID
- lua - 这个lua代码可以写得更好吗?
- php - 如何找到加载某些元素的文件?
- akka - akka 聚类中的错误