R:在ggplot2中创建时间序列的堆叠面积图
我有一个数据框,它是每个变量的百分比分配。有四个变量,其中行的总和等于1。以下是数据帧的示例输出: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(从):
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,这不是您在帖子中看到的。请参阅下面的答案。我只在尝试您的代码时收到错误消息。Mydf
也是一个数据帧,其结构与您的类似。在这种情况下,错误非常明显。您的数据帧不包含列A
到D
。这很奇怪。因为我有四列A、B、C和D。我还尝试通过colnames()
来命名dim
也给出了5英寸的颜色。我解决了这个问题。但是,您知道如何向每个变量添加黑线,即边缘的黑线吗?geom\u区域(color=“black”)