繁体   English   中英

R-堆积面积图

[英]R - Stacked Area chart

对于给定的数据集,我如何以最大总流入源最靠近X(日期)轴,最少流入源最远的方式生成跨不同来源的流入与日期的堆积面积图。

Date    Source  Inflow  
1/1/06  s1       271   
1/1/06  s3       368  
1/1/06  s2       425  
1/2/06  s4       580  
1/2/06  s2       233  
1/2/06  s3       243  
1/2/06  s1       428  
1/3/06  s5       164  
1/3/06  s2       461  
1/3/06  s3       180  
1/4/06  s1       258  
1/4/06  s2       153  
1/5/06  s6       443 

ggplot(data, aes(x=Inflow, y=Date, fill=Source)) + geom_area(colour="black", size=.2, alpha=.4) + scale_fill_brewer(palette="Greens", breaks=rev(levels(data$Source)))

请找到附件图

老实说,堆积面积图对您提供的数据没有多大意义,因为某些类别会在一天之内找到(因此,该区域无处可扩展,因此没有垂直线)。

堆积条形图可能是要走的路。

library("tidyverse")


records <- tribble(~Date, ~Source, ~Inflow, 
        "1/1/06",  "s1",      271,   
        "1/1/06",  "s3",      368,  
        "1/1/06",  "s2",      425,  
        "1/2/06",  "s4",      580,  
        "1/2/06",  "s2",      233,  
        "1/2/06",  "s3",      243,  
        "1/2/06",  "s1",      428,  
        "1/3/06",  "s5",      164,  
        "1/3/06",  "s2",      461,  
        "1/3/06",  "s3",      180,  
        "1/4/06",  "s1",      258,  
        "1/4/06",  "s2",      153,  
        "1/5/06",  "s6",      443)

records %>% 
  mutate(Date = as.Date(lubridate::mdy(Date))) %>% 
  ggplot(mapping = aes(x=Date, y=Inflow, fill=Source)) +
  geom_area(colour="black", size=.2, alpha=.4, position = position_stack()) +
  scale_fill_brewer(palette="Greens")

records %>%  
  mutate(Date = as.Date(lubridate::mdy(Date))) %>% 
  ggplot(mapping = aes(x=Date, y=Inflow, fill=Source)) +
  geom_col(colour="black", size=.2, alpha=.4, position = position_stack()) +
  scale_fill_brewer(palette="Greens")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM