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

在此示例中,我们使用了 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()
输出

在这里,在自定义直方图中,我们使用了额外的视觉自定义,如颜色、透明度、网格线,使其比基本直方图更具视觉吸引力。
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()
输出

在此示例中,我们将两个直方图并排进行比较,说明了两个独立数据集的值的频率分布。
第一个数据集的直方图标记为 Dataset 1
并使用默认颜色,而第二个数据集的直方图标记为 Dataset 2
,并使用橙色条。