首页 > 解决方案 > ggplot 一张图中的两条线,错误代码?

问题描述

我对 RStudio 很陌生,并尝试在一张图中绘制两条不同的线。X 尺度应该是年份,y 尺度应该是吨碳每公顷。然后我想为两种不同的森林管理类型(BAUca 和 NATUREca)绘制两条线。通过代码的前 4 行,我将数据从因子更改为数字。

mydata[] <- lapply(mydata, function(x) {
  if(is.factor(x)) as.numeric(as.character(x)) else x
})
sapply(mydata, class)

ggplot(mydata, aes(x=Year, y=BAUca, group=1))+
  geom_line()+
  geom_line(y=NATUREca)

我收到以下错误代码: UseMethod("rescale") 中的错误:没有适用于“重新缩放”的方法应用于“因子”类的对象

正如我所说,我已经将数据更改为数字。所以我想知道为什么它仍然给我这种错误。

这是我的数据集的示例:

Year    BAUca   NATUREca
2020    80.31   80.31
2025    83.43   92.76
2030    83.73   102.56
2035    84.76   112.72
2040    84.65   121.83
2045    84.84   131.38
2050    86.18   141.33

如果有人对此错误有解决方案,将非常高兴。问候,弗雷德里克

标签: rggplot2line-plotrescale

解决方案


你忘了y放入aesthetic

mydata <- data.frame(
  Year = c(2020, 2025, 2030, 2035, 2040, 2045, 2050),
  BAUca = c(80.31, 83.43, 83.73, 84.76, 84.65, 84.84, 86.18),
  NATUREca = c(80.31, 92.76, 102.56, 112.72, 121.83, 131.38, 141.33)
)

ggplot(mydata, aes(x=Year, y=BAUca, group=1))+
  geom_line()+
  geom_line(aes(y=NATUREca))

在此处输入图像描述


推荐阅读