gpt4 book ai didi

python - 如何将条形图与 plt 或 pandas 直方图中的刻度标签对齐(绘制多列时)

转载 作者:行者123 更新时间:2023-12-05 06:17:09 27 4
gpt4 key购买 nike

我已经开始使用 Python 解决工作中的大量数据问题,而且数据集总是略有不同。我正在尝试探索使用内置 pandas 函数绘制数据的更有效方法,而不是单独为每一列编写代码并编辑格式以获得良好的结果。

背景:我正在使用 Jupyter notebook 并查看直方图,其中的值都是唯一的整数。

问题:在使用一个函数绘制多列数据时,我希望 xtick 标签与直方图条的中心对齐,例如df.hist() 一次获取所有列的直方图。

  • 有人知道这是否可能吗?
  • 还是建议单独制作每个图表,而不是使用应用于所有列的内置函数?

enter image description here

我可以按照这篇文章单独修改它们:Matplotlib xticks not lining up with histogram这给了我我想要的,但只针对一张图,并且对值进行了一些手动处理。

一张图的预期结果示例:

enter image description here

我拥有的数据的基本示例:

# Import libraries 
import pandas as pd
import numpy as np

# create list of datapoints
data = [[170,30,210],
[170,50,200],
[180,50,210],
[165,35,180],
[170,30,190],
[170,70,190],
[170,50,190]]

# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['height', 'width','weight'])

# print dataframe.
df

在问题陈述中显示图形的代码

df.hist(figsize=(5,5))
plt.show()

显示体重图表的代码,我希望它对所有人都是这样

df.hist(column='weight',bins=[175,185,195,205,215])
plt.xticks([180,190,200,210])
plt.yticks([0,1,2,3,4,5])
plt.xlim([170, 220])
plt.show()

任何提示或帮助将不胜感激!

谢谢

最佳答案

我希望这会有所帮助。您获取列并计算每个标签的频率(值计数),然后指定 sort_index 以便按标签而不是频率获得顺序,然后绘制条形图。

data = [[170,30,210],
[170,50,200],
[180,50,210],
[165,35,180],
[170,30,190],
[170,70,190],
[170,50,190]]

# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['height', 'width','weight'])
df.weight.value_counts().sort_index().plot(kind = 'bar')
plt.show()

关于python - 如何将条形图与 plt 或 pandas 直方图中的刻度标签对齐(绘制多列时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61773761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com