如何绘制条形图,显示由数据框列组成的各种桶的频率计数?
Posted
技术标签:
【中文标题】如何绘制条形图,显示由数据框列组成的各种桶的频率计数?【英文标题】:How to plot a barchart showing frequency count of various buckets made out of a dataframe column? 【发布时间】:2021-03-24 06:32:10 【问题描述】:我有下面附加的数据框,我需要绘制一个条形图,显示在 x 轴上的运行得分和在 y 轴上的频率/计数。
我已经尝试过这个命令,但它没有显示正确的结果 -
箱 = [0,10,20,30,40]
plt.hist(df.Runs, bins, histtype='bar')
plt.xlabel('x') plt.ylabel('y')
我得到下图:-
我想要的预期情节-
【问题讨论】:
“它没有显示正确的结果”是什么意思?你能描述一下到底出了什么问题吗?顺便说一句,如果你提供bins = [0,10,20,30,40]
,预计大于40
的值将不会被表示。
@JohanC 我已经添加了从我的代码中获得的图表以及我期望它出现的图表。
可能您的“运行”是字符串而不是数字。如果您使用 pd.read_csv()
之类的函数读取数据帧,则通常会自动进行正确的转换。否则,df['DataFrame Column'] = df['DataFrame Column'].astype(int)
应该进行转换。请注意,您有多个应该是数字的列。
@JohanC 我只使用 pd.read_csv
用例如df.info()
你可以找到列的类型。您也可以尝试使用 df.hist()
获取 pandas 直方图,或者使用 seaborn 的 histplot()
【参考方案1】:
您需要进行数据清理,并且需要从运行中删除“DND”和“TDNB”行
那么你需要进口seaborn
然后你需要绘制图
回答:
bins=[0,10,20,30,40] sns.displot(df.Runs,bins) plt.show()
【讨论】:
以上是关于如何绘制条形图,显示由数据框列组成的各种桶的频率计数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中绘制显示不同类型商店类型的总销售额的条形图?