plt堆叠柱状图显示数据
时间: 2023-10-26 10:17:04 浏览: 147
以下是使用Matplotlib库在Python中实现堆叠柱状图的示例代码:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['A', 'B', 'C', 'D', 'E']
values1 = [10, 15, 20, 25, 30]
values2 = [5, 10, 15, 20, 25]
values3 = [15, 10, 5, 20, 25]
# 堆叠柱状图
plt.bar(labels, values1, label='Value 1')
plt.bar(labels, values2, bottom=values1, label='Value 2')
plt.bar(labels, values3, bottom=[i+j for i,j in zip(values1,values2)], label='Value 3')
# 设置标题和标签
plt.title('Stacked Bar Chart')
plt.xlabel('Labels')
plt.ylabel('Values')
# 显示图例
plt.legend()
# 显示图形
plt.show()
```
此代码将生成一个堆叠柱状图,其中每个柱子都由三个数据集组成。第一个数据集在底部,第二个数据集在第一个数据集之上,第三个数据集在前两个数据集之上。每个柱子的总高度是所有数据集的总和。
相关问题
Python plt 绘制横向堆叠柱状图
可以使用Matplotlib库中的`barh`函数来绘制横向堆叠柱状图。以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
labels = ['A', 'B', 'C', 'D']
values1 = [20, 35, 30, 25]
values2 = [10, 25, 20, 30]
values3 = [5, 15, 10, 20]
# 每个柱子的位置
pos = np.arange(len(labels))
# 绘制柱状图
plt.barh(pos, values1, color='blue', edgecolor='black')
plt.barh(pos, values2, color='green', edgecolor='black', left=values1)
plt.barh(pos, values3, color='orange', edgecolor='black', left=values1+values2)
# 设置标签和标题
plt.yticks(pos, labels)
plt.xlabel('Value')
plt.title('Horizontal Stacked Bar Chart')
# 显示图形
plt.show()
```
运行以上代码,可以得到一个横向堆叠柱状图。你可以根据自己的数据和需求进行修改和调整。
matplotlib堆叠柱状图 显示中文
matplotlib是一个常用的Python绘图库,可以用创建各种类型的图表,包括堆叠柱状图。要显示中文,需要进行一些配置。
首先,确保你已经安装了matplotlib和中文字体库。可以使用以下命令安装中文字体库:
```
sudo apt-get install fonts-wqy-zenhei
```
然后,可以按照以下步骤创建一个堆叠柱状图并显示中文:
1. 导入必要的库:
```python
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
```
2. 设置中文字体:
```python
# 设置中文字体路径
font_path = '/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc'
# 加载中文字体
font_prop = fm.FontProperties(fname=font_path)
```
3. 创建数据:
```python
categories = ['类别1', '类别2', '类别3']
values1 = [10, 15, 20]
values2 = [5, 10, 15]
```
4. 创建堆叠柱状图:
```python
# 设置图表大小
plt.figure(figsize=(8, 6))
# 绘制第一个柱状图
plt.bar(categories, values1, label='柱状图1')
# 绘制第二个柱状图,设置bottom参数为values1,实现堆叠效果
plt.bar(categories, values2, bottom=values1, label='柱状图2')
# 添加图例
plt.legend()
# 设置x轴标签
plt.xlabel('类别', fontproperties=font_prop)
# 设置y轴标签
plt.ylabel('数值', fontproperties=font_prop)
# 设置标题
plt.title('堆叠柱状图', fontproperties=font_prop)
# 显示中文
plt.rcParams['font.sans-serif'] = ['WenQuanYi Zen Hei']
# 显示图表
plt.show()
```
这样就可以创建一个堆叠柱状图,并显示中文。
阅读全文