[英]R: Create a stacked area plot of time series in ggplot2
我有一個數據框,它是每個變量的百分比分配。 行的總和等於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(來自https://ggplot2.tidyverse.org/reference/geom_density.html ):
我試圖按照說明進行操作,這並不是我想要的:
我收到錯誤消息:
錯誤: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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.