使用matplotlib plt.barh时,invert_xaxis给出错误

时间:2019-03-21 15:23:07

标签: python matplotlib bar-chart

我正在尝试绘制2向条形图。我想反转x1的x轴,以使0处于两者的中间。我不断收到错误消息:

  

AttributeError:“ BarContainer”对象没有属性“ invert_xaxis”

这是我的代码:

import matplotlib.pyplot as plt
y = ['F','M','H']
x1 = [8, 4, 3]
x2 = [2, 4, 7]
fig, axes = plt.subplots(ncols=2, sharey=True)
axes[0] = plt.barh(y, x1, align='center', color='b')
axes[1] = plt.barh(y, x2, align='center', color='r')
axes[0].invert_xaxis()
plt.show()

1 个答案:

答案 0 :(得分:0)

问题是您将绘图分配给两个轴对象,而不是使用它们进行绘图。正确的方法是直接使用轴对象绘制barh。然后一切都会按预期进行。

import matplotlib.pyplot as plt

y = ['F','M','H']
x1 = [8, 4, 3]
x2 = [2, 4, 7]
fig, axes = plt.subplots(ncols=2, sharey=True)
axes[0].barh(y, x1, align='center', color='b') # <---- Changed here
axes[1].barh(y, x2, align='center', color='r') # <---- Changed here
axes[0].invert_xaxis()
plt.show()

enter image description here