生成直方图、散点图和配对图提供了数据的初步视角。这些可视化图表在沟通中的真正价值在于清晰的标注。没有标签或标题的图表常常含糊不清,难以正确理解。有效使用标题、坐标轴标签和图例,能将一个基本图表转变为有意义的分析成果。Matplotlib 和 Seaborn 提供了直接的方法来添加这些必要组成部分。假设我们有一个 Pandas DataFrame df,包含 'feature_A'、'feature_B' 和 'category' 等列。我们可以生成一个散点图:import matplotlib.pyplot as plt import seaborn as sns import pandas as pd import numpy as np # 演示用示例数据 np.random.seed(42) data = { 'feature_A': np.random.rand(50) * 10, 'feature_B': 0.5 * (np.random.rand(50) * 10) + np.random.randn(50) * 1.5, 'category': np.random.choice(['Group 1', 'Group 2'], size=50) } df = pd.DataFrame(data) # 基本散点图 plt.figure(figsize=(8, 5)) # 控制图表大小 sns.scatterplot(x='feature_A', y='feature_B', data=df) plt.show()Image 7 这个初始图表展示了关系,但缺少背景信息。我们来改进它。添加标题标题概括了图表的主要信息或内容。在 Matplotlib 中(因此在使用 Seaborn 时也经常如此,因为 Seaborn 在 Matplotlib 坐标轴上绘图),您可以使用 plt.title() 或 Axes 对象方法 ax.set_title()。# 创建图表并获取 Axes 对象 plt.figure(figsize=(8, 5)) ax = sns.scatterplot(x='feature_A', y='feature_B', data=df) # 添加描述性标题 ax.set_title('特征 A 与特征 B 之间的关系') plt.show()Image 8 添加 ax.set_title() 可立即提供图表所表示内容的背景信息。选择标题时要简洁且信息量大。设置坐标轴标签坐标轴标签对于理解 x 轴和 y 轴所表示的内容非常重要。没有它们,刻度和变量将是未知的。使用 plt.xlabel()、plt.ylabel() 或 Axes 对象方法 ax.set_xlabel()、ax.set_ylabel()。如果适用,最好包含单位(例如,'温度 (u00b0C)','收入 (USD)')。# 创建图表并获取 Axes 对象 plt.figure(figsize=(8, 5)) ax = sns.scatterplot(x='feature_A', y='feature_B', data=df) # 添加标题和坐标轴标签 ax.set_title('特征 A 与特征 B 之间的关系') ax.set_xlabel('特征 A (单位)') # 如果知道单位,请具体说明 ax.set_ylabel('特征 B (响应)') plt.show()Image 9 现在,任何查看图表的人都能准确了解哪些变量绘制在哪个轴上。管理图例当您的图表包含通过颜色、标记样式或线条类型区分的多个组或类别时,图例是必要的。当您使用 hue、style 或 size 等参数时,Seaborn 通常会自动添加图例。我们来修改散点图,按 'category' 为点着色:# 为类别创建带色调的图表 plt.figure(figsize=(9, 6)) # 略微增大图表大小以容纳图例 ax = sns.scatterplot(x='feature_A', y='feature_B', hue='category', data=df) # 添加标题和坐标轴标签 ax.set_title('特征 B 对特征 A,按类别划分') ax.set_xlabel('特征 A (单位)') ax.set_ylabel('特征 B (响应)') # 自定义图例位置(可选) # ax.legend(loc='upper left', title='类别类型') # 示例自定义 plt.show()Image 10 因为我们使用了 hue 参数,Seaborn 自动添加了图例。图例将颜色映射到类别名称('Group 1','Group 2')。有时您可能需要对图例进行更多控制。Matplotlib 的 ax.legend() 提供了位置 (loc)、为图例添加标题 (title)、移除边框 (frameon=False) 等选项。常见的 loc 值包括 'best'、'upper right'、'upper left'、'lower left'、'lower right'、'center left'、'center right'、'lower center'、'upper center'、'center'。Seaborn 有时可能会将图例放置在不合适的位置,因此调整 loc 可以提高可读性。组合自定义有效的可视化涉及将这些元素一起应用。以下是完全自定义的示例:# 创建带色调的图表并自定义 plt.figure(figsize=(9, 6)) ax = sns.scatterplot(x='feature_A', y='feature_B', hue='category', data=df, s=60) # 增大了点的大小 # 添加标题和坐标轴标签 ax.set_title('特征 B 对特征 A,按类别分组', fontsize=14, fontweight='bold') ax.set_xlabel('特征 A (单位)', fontsize=12) ax.set_ylabel('特征 B (响应)', fontsize=12) # 提高网格可见性 ax.grid(True, linestyle='--', alpha=0.6) # 自定义图例 ax.legend(title='客户组', loc='upper left', frameon=True) # 改进刻度标签外观(可选) plt.xticks(fontsize=10) plt.yticks(fontsize=10) # 调整布局以防止标签重叠 plt.tight_layout() plt.show()Image 11 这个最终图表明显更加清晰:标题清楚地说明了图表的用途和背景。坐标轴标签定义了变量及其可能的单位。图例解释了不同类别的颜色映射。网格线和字体大小等额外调整提高了可读性。花时间用标题、标签和图例自定义图表是 EDA 中的重要步骤。它确保您的视觉分析不仅有助于您自己的理解,而且可以有效地传达给他人,为讨论和进一步分析奠定基础,包括我们接下来将讨论的特征工程步骤。