matplotlib如何处理非堆叠图
时间: 2023-09-07 21:12:35 浏览: 81
Python绘制堆叠柱状图的实例
5星 · 资源好评率100%
非堆叠图是指多组数据的条形图或折线图不是紧密堆叠在一起的,而是分开展示。在 matplotlib 中,可以通过设置条形图或折线图的宽度和位置来实现非堆叠展示。
对于条形图,可以通过设置 `width` 参数来控制每组数据的宽度,通过设置 `align` 参数来控制每组数据的位置。例如,如果想要让每组数据之间留有一定间隔,可以将 `width` 设置为小于 1 的值,同时将 `align` 设置为左中右三个位置中的一种。
```python
import matplotlib.pyplot as plt
data1 = [1, 2, 3]
data2 = [4, 5, 6]
data3 = [7, 8, 9]
plt.bar([0.9, 1.9, 2.9], data1, width=0.2, align='edge')
plt.bar([1.1, 2.1, 3.1], data2, width=0.2, align='edge')
plt.bar([1.3, 2.3, 3.3], data3, width=0.2, align='edge')
plt.xticks([1, 2, 3], ['A', 'B', 'C'])
plt.show()
```
对于折线图,可以通过在每组数据的横坐标上加上一定的偏移量来实现非堆叠展示。例如,如果想要将每组数据分开展示,可以让第一组数据的横坐标为 1,第二组数据的横坐标为 2,以此类推,同时在每组数据的横坐标上加上不同的偏移量。
```python
import matplotlib.pyplot as plt
data1 = [1, 2, 3]
data2 = [4, 5, 6]
data3 = [7, 8, 9]
plt.plot([1, 2, 3], data1, 'o-')
plt.plot([1.2, 2.2, 3.2], data2, 'o-')
plt.plot([1.4, 2.4, 3.4], data3, 'o-')
plt.xticks([1, 2, 3], ['A', 'B', 'C'])
plt.show()
```
阅读全文