如何从 Pandas 数据框对象显示 X 轴到 Matplotlib 条形图

Posted

技术标签:

【中文标题】如何从 Pandas 数据框对象显示 X 轴到 Matplotlib 条形图【英文标题】:How to display X axis from Pandas Dataframe Object to Matplotlib barchart 【发布时间】:2021-09-17 22:43:47 【问题描述】:

我已经从一个读入数据框的 CSV 文件创建了一个 pandas 数据框对象。 csv 很短,包含以下数据:

Group Title, Hosts ,Soccer 5, Soccer 4, Soccer 3 , Soccer 2, Soccer 1, Soccer X ,Soccer Y, Soccer Total

Units,11,1,3,4,4,5,

[1 rows x 8 columns]

我已成功在条形图上显示数据但我希望为每个组标题(主机、Socker 5、Socker 4 等)标记 x 轴并与数据对齐绘制强>

请在下面查看我当前图表的图片以更好地理解

我知道我可以手动执行此操作,但我希望从 CSV 文件(即数据框对象)中读取它。我尝试了不同的方法来做到这一点,例如尝试添加以下代码

dataframe.plot.bar(dataframe['Group Title'], title="Soccer", ylabel="Quantity", xlabel="Devices")


我的完整代码如下

import pandas as pd 
import matplotlib.pyplot as plt
import matplotlib



dataframe = pd.read_csv('C:\Scripts\custom.csv', delimiter=",")

print(dataframe)

dataframe.plot()

#plt.rcParams['figure.figsize'] = (15,8)
matplotlib.style.use('ggplot')

dataframe.plot.bar(title="Devices", ylabel="Quantity", xlabel="Devices")


#Show Graphs
plt.show()

我们将不胜感激任何帮助或指导。 谢谢

【问题讨论】:

【参考方案1】:

你可以使用seaborn的barplot:

import seaborn as sns
import matplotlib.pyplot as plt
sns.barplot(data=df)
plt.xticks(rotation=45)

或者,仅使用 pandas:

df.set_index('Group Title').T.plot.bar()

【讨论】:

嗨,添加以下代码时:dataframe.set_index('Group Title').T.plot.bar() - 它抛出错误:第 4555 行,在 set_index raise KeyError(f"None of missing 在列中”)KeyError:“['Group Title'] 都不在列中” 然后删除.set_index('Group Title') 位。这意味着“组标题”已经是您案例中的索引,由于格式问题,您的问题不是很清楚。 感谢这项工作。但是我右上角的键现在显示 0,而不是主机、足球 5 等等,知道如何让键正确显示吗? 我不明白你的意思。你不跟我一样吗?可以发张图片吗? 是的,所以你可以看到我之前有以下键(请看图片的右上角)但现在它只显示键为 0 ibb.co/5M3w8P4

以上是关于如何从 Pandas 数据框对象显示 X 轴到 Matplotlib 条形图的主要内容,如果未能解决你的问题,请参考以下文章

如何从数据框中显示绘图/3d 图?

从 pandas 数据框创建单个列

Python Pandas:如何将数据框列值设置为 X 轴标签

如何在 pandas groupby 对象上应用函数并将结果保存回父数据框的新列?

如何将python中的类转换为pandas数据框?

从 Pandas 多索引数据框创建等高线图