Python matplotlib绘图 plt.barh 水平条形图调整顺序逆序排列
使用matplotlib 中的 plt.barh 绘制水平条形图时,数据的排列顺序默认由小到大排列,即数据条由短到长排列展示,如果想让数据条由长到短排列展示,可尝试以下代码。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np# 创建数据
testy = pd.DataFrame({'label':['a','b','c'],'S01':[22,13,5],'S02':[1,5,19],'S03':[14,11,0]})
输出数据:
# 绘图
plt.barh(y=testy['label'],width=testy['S01'], tick_label=testy['label'], # y轴标签color='orange',height=0.5,)
plt.title('Test Data',fontsize=14)
plt.show()
可以看到,数据条按由小到大顺序展示。想让数据条由长到短排列展示,首先将数据逆序排列,可使用 切片 .iloc[::-1]
testy_reverse = testy.iloc[::-1]
调整顺序后的数据
# 绘图
plt.barh(y=testy_reverse['label'],width=testy_reverse['S01'],tick_label=testy_reverse['label'], # y轴标签color='orange',height=0.5,)
plt.title('Reverse Test Data ',fontsize=14)
plt.show()
注意观察,调整顺序前后,y轴的标签也随之调整了。