首页 > 解决方案 > 没有线性排序的 Matplotlib 图

问题描述

是否可以在不使用熊猫图绘制图表而不对左侧的值进行线性排序的情况下绘制 matplotlib 图表?

df = pd.DataFrame({
'x':[3,0,5],
'y':[10,4,20]
})

借助 DataFrame 制作的图表:

plt.barh(df['x'],df['y'])

没有数据框:

x = [3,0,5]
y= [10,4,20]
plt.barh(x,y)

它给了我同样的结果

Matplotlib 图表输出图表: 在此处输入图像描述

df.plot.barh('x','y')

熊猫输出图表: 在此处输入图像描述

我想只用普通数字而不是数字作为 str 的类型来获得这样的输出

plt.barh(['3','0','5'],[10,4,20])

在此处输入图像描述 可能吗?我怎么能得到它?

标签: pythonmatplotlib

解决方案


您可以将数据框的索引用作y参数,并将数据框的x值用作tick_label

plt.barh(df.index, width=df['y'], tick_label=df['x'])

在此处输入图像描述


推荐阅读