matplotlib绘制堆叠主刑图
时间: 2023-07-08 14:54:01 浏览: 97
要绘制堆叠主刑图,可以使用matplotlib库中的bar函数。下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
# 数据
data = {
'A': [10, 20, 30, 40],
'B': [20, 30, 10, 50],
'C': [5, 25, 35, 15],
}
# 堆叠主刑图
fig, ax = plt.subplots()
ax.bar(range(4), data['A'], label='A')
ax.bar(range(4), data['B'], bottom=data['A'], label='B')
ax.bar(range(4), data['C'], bottom=[data['A'][i]+data['B'][i] for i in range(4)], label='C')
ax.legend()
plt.show()
```
在这个例子中,我们有三个数据系列(A、B和C),每个系列有四个数据点。我们通过三次调用bar函数,每次传递一个系列的数据和一个bottom参数,来绘制堆叠主刑图。我们还添加了一个图例,以便区分不同的系列。最后,我们使用show函数显示图形。
相关问题
选取第一列为索引,选取某两列的数据进行matplotlib 绘制堆叠条形图
假设有以下数据:
| 类别 | A | B | C |
| :----: | :-: | :-: | :-: |
| 一 | 10 | 20 | 30 |
| 二 | 15 | 25 | 35 |
| 三 | 12 | 18 | 24 |
可以使用pandas和matplotlib库进行绘图:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
data = {'A': [10, 15, 12], 'B': [20, 25, 18], 'C': [30, 35, 24]}
df = pd.DataFrame(data, index=['一', '二', '三'])
# 绘制堆叠条形图
df.plot(kind='bar', stacked=True)
# 设置图例和标签
plt.legend(loc='upper right')
plt.xlabel('类别')
plt.ylabel('数量')
# 显示图形
plt.show()
```
运行结果如下:
![stacked_bar_chart.png](https://i.loli.net/2021/09/12/8T7iZB4F1gJ3q6v.png)
matplotlib 并列堆叠图
要绘制 matplotlib 并列堆叠图,可以使用 `bar` 函数,并设置 `bottom` 参数来实现。具体步骤如下:
1. 创建一个 `numpy` 数组,用于存储每个类别的数值。
2. 使用 `bar` 函数绘制第一个类别的柱状图,并将 `bottom` 参数设置为 0。
3. 使用 `bar` 函数绘制第二个类别的柱状图,并将 `bottom` 参数设置为第一个类别的数值。
4. 重复步骤 3,绘制其他类别的柱状图。
以下是一个示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 创建数据
data1 = np.array([1, 2, 3, 4])
data2 = np.array([2, 3, 1, 5])
data3 = np.array([3, 1, 4, 2])
# 绘制并列堆叠图
plt.bar(np.arange(len(data1)), data1, label='data1')
plt.bar(np.arange(len(data2)), data2, bottom=data1, label='data2')
plt.bar(np.arange(len(data3)), data3, bottom=data1+data2, label='data3')
# 添加图例和标签
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.title('Stacked Bar Chart')
# 显示图形
plt.show()
```
阅读全文