Matplotlib 水平条形图(barh)上下颠倒

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轴标签的位置来将其上下颠倒。上述技巧对于数据可视化和可读性的提高都有一定的帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程