使用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轴的标签也随之调整了。