DataFrame.hist(data, column=None, by=None, grid=True, xlabelsize=None, xrot=None, ylabelsize=None, yrot=None, ax=None, sharex=False, sharey=False, figsize=None, layout=None, bins=10, **kwds) [source]
制作DataFrame的直方图。
A直方图是数据的分布的表示。此函数matplotlib.pyplot.hist()
在DataFrame中的每个series上调用,从而导致每列一个直方图。
参数: | data : 存放数据的pandas对象。 column : 如果通过,将用于将数据限制为列的子集。 by : 对象(object),可选 如果通过,则用于形成单独组的直方图。 grid : 是否显示轴线网格线。 xlabelsize : 如果指定,则更改x轴标签的大小。 xrot : x轴标签的旋转。例如, 值为90将显示x标签顺时针旋转90度。 ylabelsize : 如果指定,则更改y轴标签大小。 yrot : y轴标签的旋转。例如, 值90显示y标签顺时针旋转90度。 ax : 绘制直方图的轴。 sharex : 默认为 如果 则共享x轴并将一些x轴标签设置为不可见; 如果ax为 如果ax为传入,则为 同时传递ax和 将更改图形中所有子图的所有x轴标签。 sharey : 如果 则共享y轴并将一些y轴标签设置为不可见。 figsize : 元组(tuple) 要创建的图形的尺寸(以英寸为单位)。 默认情况下使用 layout : 元组(tuple),可选 (行(rows),列(columns)) 元组用于直方图的布局。 bins : 默认为10 要使用的直方图箱数。如果给定整数, 则将计算bins + 1 bins边缘并返回。 如果bin是序列,则给出bin边缘, 包括第一个bin的左边缘和 最后一个bin的右边缘。 在这种情况下, bins将被原封不动地返回。 ** kwds 其他所有要传递给的绘图关键字参数
|
返回值: | 其中的 |
例子
1)对所有数值列绘制直方图
import pandas as pd import numpy as np import matplotlib.pyplot as plt # 创建数据 data = pd.DataFrame({ 'A': np.random.randn(1000), 'B': np.random.randn(1000) + 1, 'C': np.random.randint(1, 10, 1000) }) # 绘制直方图 data.hist() plt.show()
2)指定列绘图
import pandas as pd import matplotlib.pyplot as plt # 创建DataFrame df = pd.DataFrame({ 'length': [1.5, 0.5, 1.2, 0.9, 3], 'width': [0.7, 0.2, 0.15, 0.2, 1.1] }, index=['pig', 'rabbit', 'duck', 'chicken', 'horse']) # 绘制直方图 hist = df.hist(bins=3) # 显示图形 plt.show()
3)按类别分组绘制
import pandas as pd import numpy as np import matplotlib.pyplot as plt # 创建示例 DataFrame data = pd.DataFrame({ 'A': np.random.randn(1000), # 正态分布随机数 'B': np.random.randn(1000) + 1, 'C': np.random.randint(1, 10, 1000) }) # 添加类别列 data['Group'] = np.random.choice(['Group1', 'Group2'], size=1000) # 按类别分组绘制直方图 data.hist(column='A', by='Group', bins=15, figsize=(10, 5)) # 显示图形 plt.show()
4)修改外观参数
import pandas as pd import numpy as np import matplotlib.pyplot as plt # 创建示例 DataFrame data = pd.DataFrame({ 'A': np.random.randn(1000), # 正态分布随机数 'B': np.random.randn(1000) + 2, # 正态分布随机数,均值偏移 'C': np.random.randint(1, 10, 1000) }) # 绘制直方图 data.hist(column='B', bins=25, color='skyblue', alpha=0.7) # 显示图形 plt.show()
根据一些动物的长度和宽度绘制直方图,显示在三个箱中
import pandas as pd import matplotlib.pyplot as plt # 创建DataFrame df = pd.DataFrame({ 'length': [1.5, 0.5, 1.2, 0.9, 3], 'width': [0.7, 0.2, 0.15, 0.2, 1.1] }, index=['pig', 'rabbit', 'duck', 'chicken', 'horse']) # 绘制直方图 hist = df.hist(bins=3) # 显示图形 plt.show()