distplot
和 countplot
是 seaborn
(Seaborn)库中用于绘制数据分布的两个函数,它们各自有不同的用途和特点:
1. distplot
(分布图)
distplot
函数用于绘制单变量的分布图。它可以显示数据的直方图(histogram)或核密度估计图(kernel density estimate, KDE)。distplot
默认情况下会根据数据类型自动选择显示直方图或KDE图,但你也可以通过参数来指定显示其中之一。
import seaborn as sns
import matplotlib.pyplot as plt# 假设 data 是一个包含 'Age' 列的 DataFrame
sns.distplot(data['Age'])
plt.show()
这将绘制 ‘Age’ 列的分布图,可以是直方图或KDE图,取决于 seaborn
的自动判断。
2. countplot
(计数图)
countplot
函数用于绘制分类变量的计数图。它显示每个类别的计数,通常用于展示分类数据的分布情况。
# 假设 data 是一个包含 'Gender' 列的 DataFrame
sns.countplot(data['Gender'])
plt.show()
这将绘制 ‘Gender’ 列中每个类别的计数。
- 更多信息
想要更多了解关于分类函数的信息:Pandas | seaborn | countplot函数的使用
区别
- 用途:
distplot
用于连续变量的分布,而countplot
用于分类变量的计数。 - 显示内容:
distplot
显示数据的分布密度,而countplot
显示每个类别的计数。 - 参数:
distplot
允许你选择显示直方图(kde=False
)或KDE图(kde=True
),而countplot
没有这样的选项,因为它直接显示计数。
使用场景
- 当你想要查看一个连续变量的分布情况时,使用
distplot
。 - 当你想要了解分类变量中每个类别的数量时,使用
countplot
。
两者都是 seaborn
中非常有用的数据可视化工具,可以帮助你更好地理解数据集的特征。
- 实例
sns.set_style("whitegrid") # 白色背景和网格线
plt.figure(figsize=(15, 7))
plt.subplot(1, 2, 1) # 一行两列显示 图像 显示第一个
sns.distplot(data['Age'], kde=False, bins=10)
plt.title(f'Age Distribution', fontsize=15)
plt.xlabel('Age', fontsize=12)
plt.ylabel('Count', fontsize=12)plt.subplot(1, 2, 2)
sns.countplot(data=data, x='Gender',order=data['Gender'].value_counts().index)
plt.title(f'Gender Distribution', fontsize=15)
plt.xlabel('Gender', fontsize=12)
plt.ylabel('Count', fontsize=12)
plt.xticks(rotation=0)plt.tight_layout()
plt.show()
plt.subplot(1, 1, 1)
sns.countplot(data=data, x='Gender',hue="Gender")
plt.title(f'Gender Distribution - hue', fontsize=15)
plt.xlabel('Gender', fontsize=12)
plt.ylabel('Count', fontsize=12)
plt.xticks(rotation=0)plt.tight_layout()
plt.show()
注意:
distplot
is a deprecated function and will be removed in seaborn v0.14.0.