簡體   English   中英

R:在ggplot2中創建時間序列的堆積面積圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM