pandas.DataFrame.hist 方法是用于绘制直方图的便捷方法,帮助分析数据分布情况。它能够快速生成每列(或指定列)的直方图。本文主要介绍一下Pandas中pandas.DataFrame.hist方法的使用。

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 : DataFrame

存放数据的pandas对象。

column :string sequence

如果通过,将用于将数据限制为列的子集。

by : 对象(object),可选

如果通过,则用于形成单独组的直方图。

grid : bool,默认为True

是否显示轴线网格线。

xlabelsize : int,默认值 None

如果指定,则更改x轴标签的大小。

xrot : float,默认 None

x轴标签的旋转。例如,

值为90将显示x标签顺时针旋转90度。

ylabelsize : int,默认值 None

如果指定,则更改y轴标签大小。

yrot : float,默认为 None

y轴标签的旋转。例如,

值90显示y标签顺时针旋转90度。

ax : Matplotlib轴对象,默认为 None

绘制直方图的轴。

sharex : bool,如果axNone

默认为True,否则False

如果subplots = True

则共享x轴并将一些x轴标签设置为不可见;

如果ax为None,则默认为True;否则,

如果ax为传入,则为False。请注意,

同时传递ax和sharex = True

将更改图形中所有子图的所有x轴标签。

sharey : bool,默认为False

如果subplots = True

则共享y轴并将一些y轴标签设置为不可见。

figsize : 元组(tuple)

要创建的图形的尺寸(以英寸为单位)。

默认情况下使用 matplotlib.rcParams中的值。

layout : 元组(tuple),可选

(行(rows),列(columns))

元组用于直方图的布局。

bins : integersequence

默认为10

要使用的直方图箱数。如果给定整数,

则将计算bins + 1 bins边缘并返回。

如果bin是序列,则给出bin边缘,

包括第一个bin的左边缘和

最后一个bin的右边缘。

在这种情况下,

bins将被原封不动地返回。

** kwds

其他所有要传递给的绘图关键字参数 

matplotlib.pyplot.hist()

返回值

其中的matplotlib.AxesSubplotnumpy.ndarray

例子

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()


pandasDataFramehist

推荐文档

相关文档

大家感兴趣的内容

随机列表