Pandas 直方图

Pandas 直方图是数值数据分布的图形表示。在 Pandas 中,使用 hist() 函数,我们可以创建和绘制直方图。

我们将仔细研究直方图以及如何在 Pandas 中创建和绘制它们。


Pandas 直方图

Pandas 有一个内置函数 hist(),它接受一个数据数组作为参数。

在直方图中,一个 bin 是代表一组数据的数值范围。bin 是一个可选参数。

让我们看一个例子。

import pandas as pd
import matplotlib.pyplot as plt

# create a DataFrame
data = {'values': [18, 21, 22, 25, 28, 30, 32, 34, 35, 36, 38, 40, 42, 45, 50, 55, 60, 65, 70]}
df = pd.DataFrame(data)

# plot a histogram
plt.hist(df['values'], bins=10)
plt.show()

输出

Plotting a Histogram
绘制直方图

在此示例中,我们使用了 hist() 函数来创建直方图。

hist() 函数内部,

  • df['values'] 从 DataFrame 的 values 列创建直方图
  • bins=10 指定数据应分为 **10** 个 bin 或区间。

Pandas 自定义直方图

自定义直方图是一种具有特定视觉特征的直方图,可以有效地传达有关正在显示的数据的信息。

让我们看一个例子。

import pandas as pd
import matplotlib.pyplot as plt

# create a DataFrame with more data
data = {'values': [23, 45, 30, 50, 67, 35, 47, 62, 25, 58, 42, 36, 53, 68, 32]}
df = pd.DataFrame(data)

# plot a customized histogram
plt.hist(df['values'], bins=7, edgecolor='black', color='green', alpha=0.7)
plt.title('Customized Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.grid(True, linestyle='--', alpha=0.7)
plt.show()

输出

Plotting a Customized Histogram
绘制自定义直方图

在这里,在自定义直方图中,我们使用了额外的视觉自定义,如颜色、透明度、网格线,使其比基本直方图更具视觉吸引力。


Pandas 中的多个直方图

在 Pandas 中,我们可以创建多个直方图来比较不同的数据集。例如,

import pandas as pd
import matplotlib.pyplot as plt

# Create two DataFrames with different datasets
data1 = {'values': [12, 15, 18, 22, 25, 27, 30, 33, 37, 40]}
data2 = {'values': [8, 10, 14, 20, 24, 28, 32, 36, 42, 45]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Plot two histograms side by side
plt.hist(df1['values'], bins=6, edgecolor='black', alpha=0.7, label='Dataset 1')
plt.hist(df2['values'], bins=6, edgecolor='black', alpha=0.7, label='Dataset 2', color='orange')
plt.title('Histogram Comparison')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.legend()
plt.show()

输出

Plotting a Multiple Histogram
绘制多个直方图

在此示例中,我们将两个直方图并排进行比较,说明了两个独立数据集的值的频率分布。

第一个数据集的直方图标记为 Dataset 1 并使用默认颜色,而第二个数据集的直方图标记为 Dataset 2,并使用橙色条。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战