R语言绘制堆叠的环状条形图

堆叠条形图的进阶版,极坐标下的barplot,下面是R绘制堆叠的环状条形图的小例子。

#调用包
library(tidyverse)
library(viridis)

# 模拟数据集
data <- data.frame(
  individual=paste( "Mister ", seq(1,60), sep=""),
  group=c( rep('A', 10), rep('B', 30), rep('C', 14), rep('D', 6)) ,
  value1=sample( seq(10,100), 60, replace=T),
  value2=sample( seq(10,100), 60, replace=T),
  value3=sample( seq(10,100), 60, replace=T)
)

# 把数据转化成统一的格式
data <- data %>% gather(key = "observation", value="value", -c(1,2)) 

# 再每组末尾添加空白距离
empty_bar <- 2
nObsType <- nlevels(as.factor(data$observation))
to_add <- data.frame( matrix(NA, empty_bar*nlevels(data$group)*nObsType, ncol(data)) )
colnames(to_add) 
在Jupyter Notebook中绘制堆叠条形图可以通过`matplotlib`库实现。堆叠条形图可以用于比较多个数据系列在不同类别下的值,并将它们堆叠在一起以显示总和。以下是一个使用`matplotlib`绘制堆叠条形图的示例: ```python import matplotlib.pyplot as plt import numpy as np # 创建数据 categories = ['A', 'B', 'C', 'D'] values1 = [23, 45, 12, 67] values2 = [34, 30, 45, 23] values3 = [15, 25, 34, 30] # 设置柱状的位置和宽度 bar_width = 0.35 index = np.arange(len(categories)) # 绘制堆叠条形图 plt.bar(index, values1, bar_width, label='Values 1', color='b') plt.bar(index, values2, bar_width, bottom=values1, label='Values 2', color='r') plt.bar(index, values3, bar_width, bottom=np.array(values1) + np.array(values2), label='Values 3', color='g') # 添加标题和标签 plt.xlabel('Categories') plt.ylabel('Values') plt.title('Stacked Bar Chart') plt.xticks(index, categories) plt.legend() # 显示表 plt.tight_layout() plt.show() ``` 在上述代码中,`bottom`参数用于指定堆叠的起始位置,通过将前一个数据系列的值传递给下一个数据系列的`bottom`参数,实现了堆叠效果。 此外,也可以使用`pandas`来绘制堆叠条形图,特别是在处理数据框(DataFrame)时更加方便。下面是一个使用`pandas`绘制堆叠条形图的示例: ```python import pandas as pd import matplotlib.pyplot as plt # 创建数据框 data = { 'A': [23, 34, 15], 'B': [45, 30, 25], 'C': [12, 45, 34], 'D': [67, 23, 30] } df = pd.DataFrame(data, index=['Values 1', 'Values 2', 'Values 3']) # 绘制堆叠条形图 df.plot(kind='bar', stacked=True, figsize=(10, 6)) plt.title('Stacked Bar Chart using Pandas') plt.xlabel('Categories') plt.ylabel('Values') plt.xticks(rotation=0) plt.legend(title='Series') plt.show() ``` 以上代码展示了如何利用`pandas`的数据框功能快速创建堆叠条形图。通过设置`kind='bar'`和`stacked=True`参数,可以直接生成堆叠条形图。 需要注意的是,当在Jupyter Notebook中使用这些库时,确保已经正确安装了相关的库,如`matplotlib`和`pandas`。如果未安装,可以通过以下命令进行安装: ```bash pip install matplotlib pandas ``` 如果使用的是JupyterLab,可能还需要安装额外的插件以确保表能够正确显示,例如`jupyter-matplotlib`插件[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值