python matplotlib绘制堆积柱状图横版相同长度
时间: 2023-05-23 22:01:24 浏览: 105
可以使用 `barh` 方法和 `bottom` 参数来绘制堆积柱状图。假设已有数据列表 `data`,其中每个元素又是一个列表,表示一根柱子上的多个条形图数据。可以使用如下代码进行堆积柱状图横版绘制,其中 `category` 是类别列表,表示每根柱子的名称:
```python
import matplotlib.pyplot as plt
category = ['A', 'B', 'C', 'D']
data = [[10, 20, 30, 40], [5, 15, 25, 35], [2, 4, 6, 8]]
bars = []
for i, d in enumerate(data):
if i == 0:
bars.append(plt.barh(category, d))
else:
bars.append(plt.barh(category, d, left=sum([data[j][k] for j in range(i)])))
plt.legend(bars, ['bar'+str(i) for i in range(len(data))])
plt.show()
```
其中第一个条形图数据使用普通的 `plt.barh` 方法绘制,后面的条形图数据需要指定 `bottom` 参数为前面数据的和,这样可以让多个条形图叠加在一起。最后使用 `plt.legend` 方法添加图例,其中每个图例对应一根柱子上的所有条形图。
相关问题
python matplotlib绘制堆积柱状图横版
非常感谢您的提问!以下是 Python Matplotlib 绘制横版堆积柱状图的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
categories = ['A', 'B', 'C', 'D', 'E']
values1 = [20, 10, 30, 25, 15]
values2 = [10, 20, 15, 30, 25]
# 绘图
fig, ax = plt.subplots(figsize=(8, 4))
ax.barh(categories, values1, label='Value 1')
ax.barh(categories, values2, left=values1, label='Value 2')
ax.set_xlabel('Value')
ax.set_ylabel('Category')
ax.set_title('Stacked Horizontal Bar Chart')
ax.legend()
plt.show()
```
希望这个代码能够帮助到您!
python matplotlib 绘制相同长度堆积柱状图横版
可以使用以下代码来实现:
```python
import matplotlib.pyplot as plt
# 绘制堆积柱状图数据
data = [[10, 20, 30],
[20, 25, 15],
[10, 30, 10]]
# 绘制堆积柱状图
fig, ax = plt.subplots()
ax.bar(range(len(data[0])), data[0], label='A')
for i in range(1, len(data)):
ax.bar(range(len(data[i])), data[i], bottom=[sum(x) for x in zip(*data[:i])], label=chr(ord('A')+i))
# 设置标签和标题
ax.set_xticks(range(len(data[0])))
ax.set_xticklabels(['X', 'Y', 'Z'])
ax.legend()
plt.title('相同长度堆积柱状图横版')
plt.show()
```
注意,上述代码中使用的数据仅供参考,实际应用时需要根据具体数据进行修改。