如何用numpy库和matplotlib库如何绘制堆叠柱状图
时间: 2024-02-18 08:03:47 浏览: 28
要绘制堆叠柱状图,可以使用`matplotlib`中的`bar`函数,并通过使用`bottom`参数来指定每个柱子的起始高度。
以下是一个简单的例子,假设有三个不同的数据集,需要绘制它们的堆叠柱状图:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成三个数据集
data1 = np.array([1, 2, 3, 4, 5])
data2 = np.array([3, 5, 2, 1, 7])
data3 = np.array([2, 6, 4, 8, 2])
# 计算每个数据集的累积和
cumulative_data1 = np.cumsum(data1)
cumulative_data2 = np.cumsum(data2)
cumulative_data3 = np.cumsum(data3)
# 绘制堆叠柱状图
plt.bar(x=data1, height=data1)
plt.bar(x=data1, height=data2, bottom=data1)
plt.bar(x=data1, height=data3, bottom=data2 + data1)
# 显示图形
plt.show()
```
在这个例子中,`cumulative_data1`、`cumulative_data2`和`cumulative_data3`分别是每个数据集的累积和,`bottom`参数指定每个柱子的底部起始高度。通过这种方式,就可以绘制出堆叠柱状图了。
相关问题
如何用numpy库和matplotlib库如何绘制柱状图
首先,需要导入numpy库和matplotlib库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
然后,生成一些数据:
```python
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 8, 6, 4, 2])
```
接下来,使用`matplotlib`中的`bar`函数绘制柱状图:
```python
plt.bar(x, y)
plt.show()
```
这里的`x`是横坐标,`y`是纵坐标,`plt.show()`用于显示图形。你可以根据自己的需要修改数据和参数,来绘制出不同的柱状图。
matplotlib库绘制堆积柱状图绘制堆积柱状图
使用matplotlib库绘制堆积柱状图可以用于比较不同类别数据的总量以及它们的组成部分。下面是一个简单的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
categories = ['A', 'B', 'C', 'D']
data1 = [20, 35, 30, 25]
data2 = [10, 25, 20, 30]
data3 = [5, 10, 15, 20]
# 绘制堆积柱状图
fig, ax = plt.subplots()
ax.bar(categories, data1, label='Data 1')
ax.bar(categories, data2, bottom=data1, label='Data 2')
ax.bar(categories, data3, bottom=np.array(data1)+np.array(data2), label='Data 3')
# 添加图例和标签
ax.legend()
ax.set_xlabel('Category')
ax.set_ylabel('Value')
ax.set_title('Stacked Bar Chart')
plt.show()
```
解释一下上面的代码:
- 首先,我们定义了四个类别(A,B,C,D)和三组数据(data1,data2,data3)。这些数据代表每个类别的总量以及它们的组成部分。
- 然后,我们使用`ax.bar()`函数绘制堆积柱状图。我们为每个类别绘制三个矩形,分别代表三组数据。`bottom`参数表示每个矩形的底部位置,因此第二组和第三组数据的底部位置都是前面的组成部分加起来的结果。
- 最后,我们添加图例和标签,然后显示图形。
运行上面的代码,你将得到一个堆积柱状图,它显示了每个类别的总量以及它们的组成部分。你可以根据需要修改类别和数据,以满足你的需求。