Python 条形图不符合matplotlib中图例文本的顺序
刚才注意到图例文本的顺序与绘图栏的顺序不同。我希望在传说的第一位看到“香蕉”。有可能纠正这种行为吗?谢谢 我的代码是:Python 条形图不符合matplotlib中图例文本的顺序,python,pandas,matplotlib,Python,Pandas,Matplotlib,刚才注意到图例文本的顺序与绘图栏的顺序不同。我希望在传说的第一位看到“香蕉”。有可能纠正这种行为吗?谢谢 我的代码是: import matplotlib.pyplot as plt import pandas as pd df = pd.DataFrame({"Apple" : [2,3,4,1], "Banana" : [4,2,1,2]}) ax = df.plot.barh() ax.legend() plt.show() 还有我的图表:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"Apple" : [2,3,4,1], "Banana" : [4,2,1,2]})
ax = df.plot.barh()
ax.legend()
plt.show()
还有我的图表:
图例标签的顺序实际上是正确的。默认情况下,Matplotlib的垂直轴从底部开始并向上延伸。因此,正如在传说中一样,蓝色条排在第一位 可以反转图例控制柄和标签:
h, l = ax.get_legend_handles_labels()
ax.legend(h[::-1], l[::-1])
您还可以决定反转y轴
ax = df.plot.barh()
ax.invert_yaxis()
图例处理程序的顺序是通过列顺序选择的,您必须以相反的顺序对数据帧的列名称进行排序(对于列轴使用
reindex\u axis
)
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"Apple" : [2,3,4,1], "Banana" : [4,2,1,2]})
df = df.reindex_axis(reversed(sorted(df.columns)), axis = 1)
ax = df.plot.barh()
ax.legend()
plt.show()