R:在ggplot2中创建时间序列的堆叠面积图

R:在ggplot2中创建时间序列的堆叠面积图,r,ggplot2,charts,stacked-area-chart,R,Ggplot2,Charts,Stacked Area Chart,我有一个数据框,它是每个变量的百分比分配。有四个变量,其中行的总和等于1。以下是数据帧的示例输出: dates A B C D 1997-01-01 0.2 0.2 0.5 0.1 1997-02-01 0.3 0.2 0.4 0.1 1997-03-01 0.1 0.3 0.2 0.4 ... ... ... ... ... 2017-12-01 0.2 0.2 0.1 0.5 如何创建类似的堆叠面积图,如x轴显示年份,y轴从0到1(从):

我有一个数据框,它是每个变量的百分比分配。有四个变量,其中行的总和等于1。以下是数据帧的示例输出:

dates       A   B   C   D
1997-01-01  0.2 0.2 0.5 0.1 
1997-02-01  0.3 0.2 0.4 0.1
1997-03-01  0.1 0.3 0.2 0.4
...         ... ... ... ...
2017-12-01  0.2 0.2 0.1 0.5
如何创建类似的堆叠面积图,如x轴显示年份,y轴从0到1(从):

我试图按照说明进行操作,结果产生了这样的结果,而这并不是我想要的:

我收到错误消息:

错误:A:D必须计算为列位置或名称,而不是双向量

此外:警告信息:

1:在x:y中:数值表达式有252个元素:仅使用第一个元素

2:在x:y中:数值表达式有252个元素:仅使用第一个元素


我想你想要的是面积,而不是密度。此外,您还希望将数据重塑为长格式

library(tidyverse)

df <- read.table(text = "
dates       A   B   C   D
1997-01-01  0.2 0.2 0.5 0.1 
1997-02-01  0.3 0.2 0.4 0.1
1997-03-01  0.1 0.3 0.2 0.4
", header = TRUE)

df %>% 
  mutate(dates = as.Date(dates)) %>% 
  gather(variable, value, A:D) %>% 
  ggplot(aes(x = dates, y = value, fill = variable)) +
  geom_area()
库(tidyverse)
df%
变异(日期=as.Date(日期))%>%
聚集(变量,值,A:D)%>%
ggplot(aes(x=日期,y=值,填充=变量))+
geom_区域()

您使用了什么代码来生成显示的绘图?我使用了
ggplot(df,aes(x=日期,y=值))+geom_区域(position=“fill”)
在您的数据框中没有
列。我的数据框看起来像
df,这不是您在帖子中看到的。请参阅下面的答案。我只在尝试您的代码时收到错误消息。My
df
也是一个数据帧,其结构与您的类似。在这种情况下,错误非常明显。您的数据帧不包含列
A
D
。这很奇怪。因为我有四列A、B、C和D。我还尝试通过
colnames()
来命名
dim
也给出了5英寸的颜色。我解决了这个问题。但是,您知道如何向每个变量添加黑线,即边缘的黑线吗?
geom\u区域(color=“black”)