堆积面积图、R语言、风格修改、比例风险面积图、顺序修改

数据解释

用作构建堆积面积图的输入的数据框需要 3 列:

x:用于X轴的数字变量,通常是 一时间。

y:用于 Y 轴的数字变量。

组:分组。

图表是使用该函数构建的:geom_area()

基本绘图

#导入函数包
library(ggplot2)
library(dplyr)
# 创建一个数据集
time <- as.numeric(rep(seq(1,7),each=7))  # x Axis
time
##  [1] 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6
## [39] 6 6 6 6 7 7 7 7 7 7 7
value <- runif(49, 10, 100)               # y Axis
value 
##  [1] 54.01599 84.57008 33.12773 17.52322 71.92345 65.12986 53.44853 33.82270
##  [9] 44.03269 46.74773 81.35168 85.29474 71.14719 11.32227 16.20615 84.74430
## [17] 73.21043 26.23366 88.28483 26.04675 57.01979 94.25706 35.39703 47.22172
## [25] 70.75864 54.10606 68.55687 17.19584 22.63922 16.55235 25.74752 61.81437
## [33] 32.13874 58.02742 60.86489 29.71389 83.67461 61.71081 61.66240 27.12170
## [41] 66.36314 98.16680 82.10922 25.30800 53.20924 92.68590 19.36892 49.13718
## [49] 78.03089
group <- rep(LETTERS[1:7],times=7)        # group, one shape per group
group
##  [1] "A" "B" "C" "D" "E" "F" "G" "A" "B" "C" "D" "E" "F" "G" "A" "B" "C" "D" "E"
## [20] "F" "G" "A" "B" "C" "D" "E" "F" "G" "A" "B" "C" "D" "E" "F" "G" "A" "B" "C"
## [39] "D" "E" "F" "G" "A" "B" "C" "D" "E" "F" "G"
data <- data.frame(time, value, group)
head(data)
##   time    value group
## 1    1 54.01599     A
## 2    1 84.57008     B
## 3    1 33.12773     C
## 4    1 17.52322     D
## 5    1 71.92345     E
## 6    1 65.12986     F
#堆积面积图
ggplot(data, aes(x=time, y=value, fill=group)) + 
  geom_area()

 顺序修改

#控制排序
#把分组那一列因子化,并给定排列顺序
data$group <- factor(data$group , levels=c("B", "A", "D", "E", "G", "F", "C") )

#重新画图
ggplot(data, aes(x=time, y=value, fill=group)) + 
  geom_area()

 风格修改

#修改风格
library(viridis)
## 载入需要的程辑包:viridisLite
library(hrbrthemes)

ggplot(data, aes(x=time, y=value, fill=group)) + 
  geom_area(alpha=0.6 , size=.5, colour="white") +
  scale_fill_viridis(discrete = T) +
  theme_ipsum() + 
  ggtitle("堆积面积图")

 变种:比例堆积面积图

#比例堆积面积图
#在比例堆积面积图中,每年的总和始终为等于100,每个组的值表示为百分比。

#计算比例
library(dplyr)
data <- data  %>%
  group_by(time, group) %>%
  summarise(n = sum(value)) %>%
  mutate(percentage = n / sum(n))
#绘图
ggplot(data, aes(x=time, y=percentage, fill=group)) + 
  geom_area(alpha=0.6 , size=1, colour="black")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值