Python Pandas – 绘制堆叠的水平条形图
在数据分析和可视化的过程中,绘制堆叠的水平条形图是一种常见的方法。Python的Pandas库提供了很好的支持,可以灵活地绘制各种类型的水平条形图。
首先,我们需要导入Pandas和Matplotlib库:
import pandas as pd
import matplotlib.pyplot as plt
接下来,我们可以创建一个简单的数据集,包含三个类别和每个类别的三个数值:
data = {'类别1': [4, 5, 6], '类别2': [1, 3, 2], '类别3': [1, 2, 3]}
df = pd.DataFrame(data)
df
输出结果为:
类别1 | 类别2 | 类别3 | |
---|---|---|---|
0 | 4 | 1 | 1 |
1 | 5 | 3 | 2 |
2 | 6 | 2 | 3 |
现在,我们可以使用Pandas的plot函数来绘制堆叠的水平条形图:
df.plot.barh(stacked=True)
plt.show()
这里,我们使用了Pandas的plot函数和Matplotlib的show函数来展示结果。 stacked=True
表示将每个类别的数值堆叠在一起。
绘制堆叠的水平条形图的优点在于可以将多个类别和它们的数值一目了然地展示出来。同时,使用堆叠的方式也可以方便地比较类别间的差异和数量之和。
在实际使用中,我们可能需要对绘图进行一些调整,比如修改标签、颜色、字体等。下面是一个更加复杂的示例,展示了如何对绘图进行调整:
# 创建数据集
data = {'类别1': [4, 5, 6], '类别2': [1, 3, 2], '类别3': [1, 2, 3]}
df = pd.DataFrame(data)
# 绘制堆叠的水平条形图
ax = df.plot.barh(stacked=True, figsize=(10, 6), color=['#F7DB4F', '#58D68D', '#5DADE2'])
# 设置X轴标签和范围
ax.set_xlabel('数量')
ax.set_xlim(0, 15)
# 设置Y轴标签和范围
ax.set_ylabel('类别')
ax.set_ylim(-0.5, 2.5)
# 设置图形标题
ax.set_title('堆叠的水平条形图', fontsize=16)
# 添加数据标签
for i in ax.containers:
ax.bar_label(i, padding=5)
# 显示图形
plt.show()
这个示例中,我们使用了 figsize
参数设置了图形的大小,使用了 color
参数设置了每个类别的颜色。另外,我们还可以使用其他方法来对标签、颜色、字体等进行调整,以满足实际需求。
结论
绘制堆叠的水平条形图是一种常见的数据分析和可视化方法。Python的Pandas库提供了很好的支持,可以灵活地绘制各种类型的水平条形图。在实际使用中,我们需要根据实际需求对绘图进行调整,以获得更加合适的结果。