r - 如何修复 f(...) : Aesthetics can not vary with a ribbon 中的错误

标签 r ggplot2 stacked-area-chart

我正在使用 ggplot2 创建一个堆叠面积图,显示多个不同研究站随时间变化的足迹(面积)。我想要看起来像下图的东西,但 y 轴上有 Area 并且由不同的研究站着色:

stacked area chart
(来源:r-graph-gallery.com)

我尝试过类似帖子的元素,但无法正常工作。

Trouble with ggplot in R - "Error in f(...) : Aesthetics can not vary with a ribbon"

Getting a stacked area plot in R

https://www.r-graph-gallery.com/136-stacked-area-chart/

我提供了数据的 .csv 子集 here .

下面是我正在使用的代码。

fp <- read.csv("fp.csv")

fp$Year <- as.numeric(rep(fp$Year)) #change Year to numeric

p2 <- fp %>% 
  filter(Exist == 1) %>% # Select only existing structures
  group_by(Year, Station) %>%
  summarise(Sum_Area = sum(Area)) %>% 
  arrange(desc(Year)) %>% 
  ggplot(aes(x = Year, y = Sum_Area, fill = Sum_Area)) +
  geom_area(stat = "identity", position = "stack")
p2

我总是收到错误消息:f(...) 错误:色带不能改变美学

最佳答案

如果您的填充变量是整数或数字变量而不是字符或因子变量,就会发生这种情况。

重现错误

airquality %>%
    ggplot(aes(x = Day, y = Ozone, fill = Month)) +
    geom_area()
#Error: Aesthetics can not vary with a ribbon

修正错误

airquality %>%
    mutate(Month = as.character(Month)) %>%
    ggplot(aes(x = Day, y = Ozone, fill = Month)) +
    geom_area()

这当然是一个无用的情节,只是为了说明错误。

关于r - 如何修复 f(...) : Aesthetics can not vary with a ribbon 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57333161/

相关文章:

r - 如何将轴放在图形后面?

r - 更改函数内的默认 ggplot2 比例

javascript - 无法在单个工具提示中显示堆积面积图的工具提示值

mysql - RODBC 中的 sqlSave 仅保存 R 中日期的年份

r - 将工具提示格式化为货币并打开比较模式

Rstudio 如何让 stringi 包安装工作?一切都很好,直到 dyn.load 完全失败

javascript - 堆积面积图在百分比比例和绝对比例之间切换的更好方法是什么?

R - ggplot2 - X 轴标签不会显示

r - 在不规则网格上绘制数据的有效方法

r - geom_area 填充不起作用 ggplot2