Matplotlib 水平条形图(barh)上下颠倒
Matplotlib是一个广泛使用的绘图库,它提供了广泛的绘图功能,包括折线图、散点图、柱状图、饼图和水平条形图(barh)等。其中,水平条形图是常用的一种图表类型,它可以用来比较各个类别的数据大小,特别适用于需要和其他分类变量进行比较的数据展示。
阅读更多:Matplotlib 教程
水平条形图
水平条形图是将条形图横向展示的一种形式。它将数据按照从左到右的顺序绘制在一个水平条上。其中x轴表示数据大小,y轴表示数据标签。
下面是一个简单的水平条形图的示例:
import matplotlib.pyplot as plt
y = ["A", "B", "C", "D", "E"]
x = [4, 7, 2, 6, 3]
plt.barh(y, x, align='center')
plt.show()
上述代码首先定义了x、y两个变量,数据分别为[4,7,2,6,3]和[‘A’,’B’,’C’,’D’,’E’]。接着,使用
“`barh()“`函数绘制了水平条形图。其中,“`align“`参数用于控制水平条形图的对齐方式。在此示例中,“`align=’center’“`表明水平条形图将在中央对齐。
条形图上下颠倒
在Matplotlib中,水平条形图和垂直条形图所绘制的结果是相同的。但是,如果我们希望将水平条形图上下颠倒,该如何实现呢?
我们可以将数据倒序排列,然后使用
“`yticks“`函数来将y轴标签翻转,最后使用“`barh()“`函数进行绘图。代码如下:
import matplotlib.pyplot as plt
y = ["A", "B", "C", "D", "E"]
x = [4, 7, 2, 6, 3]
y.reverse() # 倒序排列y轴数据
plt.yticks(range(len(y)), y) # 翻转y轴标签
plt.barh(range(len(x)), x, align='center') # 绘制水平条形图
plt.show()
运行上述代码,可以看到水平条形图的y轴标签已经上下颠倒了。
需要注意的是,由于我们使用了
“`range()“`函数来生成y轴标签,所以我们需要将y轴标签挪回原来的位置。这可以通过倒序排列y轴标签来实现。在新的水平条形图中,x轴上的数据在y轴上进行了绘制,而y轴上的数据则成为了x轴上的标签。因此,倒序排列y轴数据可以将水平条形图上下颠倒。
总结
在Matplotlib中,水平条形图是常用的一种图表类型。虽然在默认情况下水平条形图是从下到上绘制的,但我们可以通过倒序排列y轴数据和调整y轴标签的位置来将其上下颠倒。上述技巧对于数据可视化和可读性的提高都有一定的帮助。