带 R 的堆积面积图
面积图被定义为共享公共区域的两个系列之间的填充区域。如果您了解面积图,堆积面积图就很容易理解。此图显示同一图上多个组的成本/价值的演变。每个组的值显示在每个组的顶部。使用此图,我们可以逐个分析每个组中存在的变量的总数值以及每个组的重要性。
R 使用函数geom_area()创建堆积面积图。
Syntax: ggplot(Data, aes(x=x_variable, y=y_variable, fill=group_variable)) + geom_area()
Parameters:
- Data: This parameter contains whole dataset which are used in stacked-area chart.
- x: This parameter contains numerical value of variable for x axis in stacked-area chart.
- y: This parameter contains numerical value of variables for y axis in stacked-area chart.
- fill: This parameter contains group column of Data which is mainly used for analyse in stacked-area chart.
创建一个基本的堆积面积图:
步骤 1:导入包
R
library(ggplot2)
library(dplyr)
library(tidyverse)
R
group <- rep(c("NORTH","SOUTH","EAST","WEST"),times=4)
year <- as.numeric(rep(seq(2017,2020),each=4))
price <- runif(16, 50, 100)
data <- data.frame(year, price, group)
R
ggplot(data, aes(x=year, y=price, fill=group)) + geom_area()
R
data <- data %>%
+ group_by(year, group) %>%
+ summarise(n = sum(price)) %>%
+ mutate(percentage = n / sum(n))
R
library(viridis)
library(hrbrthemes)
ggplot(data, aes(x=year, y=percentage, fill=group))
+ geom_area(alpha=0.8 , size=.5, colour="white")
+ scale_fill_viridis(discrete = T)
+ theme_ipsum()
+ ggtitle("Percentage Stacked-Area Plot")
第 2 步:创建数据集
在 Group 列中, Four Direction 复制了 4 次。年份列,序列从2017年到2020年生成,每次4次。价格列,由 runif(n, min, max)函数。
电阻
group <- rep(c("NORTH","SOUTH","EAST","WEST"),times=4)
year <- as.numeric(rep(seq(2017,2020),each=4))
price <- runif(16, 50, 100)
data <- data.frame(year, price, group)
输出:
第 3 步:绘制数据
电阻
ggplot(data, aes(x=year, y=price, fill=group)) + geom_area()
输出:
百分比堆积面积图
在基本堆积面积图中,如果我们对每个组的相对兴趣感兴趣,那么我们可以绘制百分比堆积面积图。该图将标准化我们的数据然后绘制。这可以使用dplyr库来完成。
第 1 步:计算百分比
电阻
data <- data %>%
+ group_by(year, group) %>%
+ summarise(n = sum(price)) %>%
+ mutate(percentage = n / sum(n))
输出:
第 2 步:绘制数据
我们可以通过贻贝库,通过ggtitle标题和hrbrthemes包theme_ipsum在情节增添色彩
电阻
library(viridis)
library(hrbrthemes)
ggplot(data, aes(x=year, y=percentage, fill=group))
+ geom_area(alpha=0.8 , size=.5, colour="white")
+ scale_fill_viridis(discrete = T)
+ theme_ipsum()
+ ggtitle("Percentage Stacked-Area Plot")
输出: