目录
相关类可视化图像多种多样,各有特点与适用场景。散点图通过点在坐标系中的分布来揭示变量间的关系,直观展现数据点的离散与聚集趋势,适合观察变量间的初步相关性或分布特征,使用 Excel 时,选中数据区域,插入散点图即可生成,能清晰呈现数据间的疏密分布。气泡图在散点图基础上增加了气泡大小这一维度,可体现更多变量信息,常用于分析多个因素的相互影响,如在 Python 的 Matplotlib 中,通过设置 `scatter` 函数的 `s` 参数控制气泡大小来实现,气泡大小能直观反映数据量或重要性。相关图以矩阵形式呈现变量间相关系数,数值大小和颜色深浅共同标明相关性强弱,主要用于多变量数据集的相关性分析,借助 R 语言的 `corrplot` 包能快速生成,色彩鲜明的矩阵图便于识别变量间正负相关关系。热力图通过颜色渐变来表示数值的高低,适用于展示大规模数据集或时间序列数据中的变量关联,例如用 Tableau 可轻松创建,其色块变化能直观体现数据的密集程度和变化趋势。二维密度图则通过颜色或高度表示数据点的密度分布,可反映数据在二维空间中的密集区域,用 Python 的 Seaborn 库中的 `kdeplot` 函数绘制,能呈现数据的集中与稀疏区域。这些图表为数据分析提供了丰富的可视化手段,帮助我们深入理解和挖掘数据中的相关性信息。
一、散点图
1、概念
散点图通过将数据点绘制在二维坐标系中,展示两个变量之间的关系,每个点代表一个观测值,横纵坐标分别对应两个变量。
2、特点
(1)直观性强:散点图通过点的位置直观地展示了两个变量之间的关系。观察者可以快速判断变量之间是否存在某种趋势(如正相关、负相关或无明显关系)。例如,如果数据点大致沿着一条从左下到右上的直线分布,说明两个变量呈正相关;如果沿着一条从左上到右下的直线分布,则呈负相关。
(2)数据分布清晰:散点图能够清晰地展示数据的分布情况,包括数据的集中区域、离群点等。通过观察数据点的聚集情况,可以判断数据是否存在异常值或是否符合某种分布规律。例如,如果数据点集中在某个区域内,说明该区域是数据的高密度区域;如果存在远离其他数据点的点,则可能是离群点。
(3)可扩展性强:散点图可以通过颜色、大小、形状等属性进一步区分数据,从而展示更多维度的信息。例如,可以通过颜色区分不同的类别,通过点的大小表示第三个变量的大小,甚至可以通过点的形状表示第四个变量。
(4)适用于大规模数据:散点图可以处理大规模的数据集,即使数据量较大,也能通过点的分布直观地展示变量之间的关系。当然,如果数据量过大,可能会出现过度绘制(overplotting)的问题,但可以通过透明度(alpha)或分层显示等方法解决。
(5)易于理解:散点图的结构简单,易于理解,适合向非专业人士展示数据关系。它不需要复杂的图表解读知识,普通观众也能快速理解图表所表达的内容。
3、应用场景
(1)相关性分析:散点图是判断两个变量之间是否存在相关性的常用工具。通过观察数据点的分布趋势,可以初步判断变量之间是否存在线性或非线性关系。例如,在经济学中,可以使用散点图分析收入与消费之间的关系;在生物学中,可以分析基因表达水平与某种疾病发生率之间的关系。
(2)数据分布分析:散点图可以清晰地展示数据的分布情况,帮助分析数据的集中趋势、离散程度和异常值。例如,在质量控制中,可以使用散点图分析产品尺寸与质量指标之间的关系,找出可能的异常产品。
(3)多变量分析:散点图可以通过颜色、大小等属性展示多个变量之间的关系。例如,可以使用颜色区分不同的类别,通过点的大小表示第三个变量的大小。例如,在市场营销中,可以使用散点图分析广告投放量、销售额和不同地区的市场表现之间的关系。
(4)时间序列分析:散点图可以用于展示时间序列数据中两个变量之间的关系。通过将时间作为横轴,可以观察变量随时间的变化趋势。例如,在气象学中,可以使用散点图分析气温与降雨量之间的关系随季节的变化。
(5)实验数据可视化:在科学研究中,散点图常用于展示实验数据,帮助研究人员理解变量之间的关系和实验结果。例如,在物理实验中,可以使用散点图分析力与加速度之间的关系,验证牛顿第二定律。
(6)预测模型评估:在机器学习和数据分析中,散点图可以用于评估预测模型的性能。通过将实际值和预测值绘制在散点图上,可以直观地观察模型的拟合效果。例如,在回归分析中,可以使用散点图展示实际值与预测值之间的关系,判断模型是否能够很好地拟合数据。
4、代码实现过程及结果
(1)代码实现过程
这段代码利用 Python 中的常用数据处理与可视化库,旨在绘制鸢尾花数据集中花萼长度与花瓣长度的散点图。首先引入了 numpy、pandas 用于数据处理,seaborn 和 matplotlib 用于绘图,以及 sklearn.datasets 来加载鸢尾花数据集。接着,手动设置中文字体路径,以确保图表标题等能正确显示中文。然后加载鸢尾花数据集,并将其转为 pandas 数据框,添加物种分类列。设置绘图风格为白色网格背景、柔和色调后,创建散点图,指定数据源、x 轴为花萼长度、y 轴为花瓣长度,依据物种进行颜色和样式区分,设置点大小。最后添加标题、图例,调整布局并保存图片、展示图表,整体条理清晰,逐步实现数据可视化目标。以下为完整代码:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn.datasets import load_iris
# 手动加载字体文件
font_path = 'C:/Windows/Fonts/simhei.ttf' # 替换为你的字体文件路径
font_prop = mpl.font_manager.FontProperties(fname=font_path)
# 设置全局字体
mpl.rcParams['font.family'] = font_prop.get_name()
mpl.rcParams['axes.unicode_minus'] = False
# 加载示例数据集
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)
# 设置绘图风格
sns.set(style="whitegrid", palette="muted")
# 1. 散点图
plt.figure(figsize=(8, 6))
sns.scatterplot(data=df, x='sepal length (cm)', y='petal length (cm)',
hue='species', style='species', s=80)
plt.title("散点图 - 花萼与花瓣长度关系", fontsize=15, fontproperties=font_prop)
plt.legend(loc='upper left')
plt.tight_layout()
plt.savefig('scatter_plot.png', dpi=300, bbox_inches='tight')
plt.show()
(2)结果
这张散点图直观展示了鸢尾花三种不同物种(setosa、versicolor、virginica)的花萼长度与花瓣长度之间的关系。横轴为花萼长度,纵轴为花瓣长度。setosa 物种的数据点花瓣长度集中在 1 至 2 厘米左右,花萼长度多在 4.5 至 5.5 厘米之间;versicolor 物种花瓣长度在 3 至 5 厘米,花萼长度约 5 至 6.5 厘米;virginica 物种花瓣长度大致在 4.5 至 6.5 厘米,花萼长度从 5.5 延伸到 7.5 厘米以上,不同物种的数据点分布区域基本相互独立,仅有极少量重叠,清晰反映了三种鸢尾花在花萼与花瓣长度上的差异特征。结果图显示如下:

二、气泡图
1、概念
气泡图是一种基于散点图的扩展,用于展示三个变量之间的关系。每个气泡的位置由两个变量决定(横轴和纵轴),第三个变量则通过气泡的大小来表示。气泡图可以进一步扩展,通过颜色、形状等属性表示更多的变量。
2、特点
(1)多维度展示:气泡图能够在一个二维平面上展示三个甚至更多的变量信息。横轴和纵轴分别表示两个变量,气泡的大小表示第三个变量,颜色或其他属性可以表示第四个变量。例如,可以使用颜色区分不同的类别,通过形状表示另一种分类。
(2)直观性强:气泡的大小直观地表示第三个变量的数值大小,观察者可以快速判断不同数据点在第三个变量上的差异。例如,较大的气泡表示较大的数值,较小的气泡表示较小的数值。
(3)数据分布清晰:气泡图能够清晰地展示数据的分布情况,包括数据的集中区域、离群点等。通过观察气泡的聚集情况,可以判断数据是否存在异常值或是否符合某种分布规律。例如,如果气泡集中在某个区域内,说明该区域是数据的高密度区域;如果存在远离其他气泡的气泡,则可能是离群点。
(4)可扩展性强:气泡图可以通过颜色、透明度、形状等属性进一步区分数据,从而展示更多维度的信息。例如,可以通过颜色区分不同的类别,通过透明度表示数据的密度,通过形状表示另一种分类。
(5)适用于中等规模数据:气泡图适合用于中等规模的数据集。如果数据量过大,可能会出现过度绘制(overplotting)的问题,导致图表难以解读。但可以通过透明度调整或交互式图表来解决这一问题。
(6)易于理解:气泡图的结构相对简单,易于理解,适合向非专业人士展示数据关系。它不需要复杂的图表解读知识,普通观众也能快速理解图表所表达的内容。
3、应用场景
(1)商业分析:在商业分析中,气泡图常用于展示多个变量之间的关系,如销售额、利润和市场份额。通过气泡图,可以直观地比较不同产品或地区的业务表现。例如,可以使用气泡图分析不同产品的销售额(横轴)、利润(纵轴)和市场份额(气泡大小),帮助决策者快速识别高潜力产品。
(2)经济分析:在经济研究中,气泡图可以用于展示国家或地区的经济指标,如GDP、人均收入和人口规模。通过气泡图,可以直观地比较不同国家或地区的经济发展水平。例如,可以使用气泡图分析国家的GDP(横轴)、人均收入(纵轴)和人口规模(气泡大小),帮助研究人员识别经济发展模式。
(3)市场营销:在市场营销中,气泡图可以用于分析广告投放效果、客户满意度和市场份额等多个变量之间的关系。例如,可以使用气泡图分析不同广告渠道的投放金额(横轴)、转化率(纵轴)和覆盖用户数(气泡大小),帮助营销人员优化广告策略。
(4)科学研究:在科学研究中,气泡图可以用于展示实验数据,帮助研究人员理解变量之间的关系和实验结果。例如,在生物学研究中,可以使用气泡图分析基因表达水平(横轴)、蛋白质含量(纵轴)和细胞数量(气泡大小),帮助研究人员识别关键基因。
(5)社会数据分析:在社会数据分析中,气泡图可以用于展示人口统计学数据,如年龄、收入和教育水平之间的关系。例如,可以使用气泡图分析不同地区的平均年龄(横轴)、平均收入(纵轴)和人口数量(气泡大小),帮助政策制定者制定社会政策。
(6)地理数据分析:在地理数据分析中,气泡图可以用于展示地理空间数据,如城市的人口密度、经济发展水平和环境污染程度。例如,可以使用气泡图分析城市的地理位置(横轴和纵轴)、人口密度(气泡大小)和污染指数(气泡颜色),帮助城市规划者优化城市布局。
4、代码实现过程及结果
(1)代码实现过程
这段代码用于绘制鸢尾花数据集的气泡图,展示花瓣长度与花萼长度的关系,并通过气泡大小反映花萼宽度。代码首先设置绘图尺寸,利用 numpy 的随机种子确保抽样的可重复性,从数据框中抽取 30 个样本以减少点的重叠。接着,根据花萼宽度计算气泡大小,将其与物种类别结合,利用 seaborn 的 scatterplot 函数绘制气泡图,指定 x 轴为花萼长度、y 轴为花瓣长度,设置气泡大小范围及透明度。最后添加标题、调整图例位置、优化布局并保存图片,整体流程合理,有效利用气泡图多维度展示数据特征。完整代码如下所示;
# 2. 气泡图
plt.figure(figsize=(8, 6))
np.random.seed(42)
bubble_df = df.sample(n=30) # 抽样减少重叠
sizes = (bubble_df['sepal width (cm)'] * 5) ** 2 # 气泡大小计算
scatter = sns.scatterplot(data=bubble_df, x='sepal length (cm)',
y='petal length (cm)', size=sizes,
hue='species', sizes=(20, 400), alpha=0.8)
plt.title("气泡图 - 花瓣长度&宽度关系", fontsize=15, fontproperties=font_prop)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.savefig('bubble_plot.png', dpi=300, bbox_inches='tight')
plt.show()
(2)结果
这张气泡图清晰呈现了鸢尾花三种物种(setosa、versicolor、virginica)花瓣长度与花萼长度的关系,并通过气泡大小体现花萼宽度。横轴为花萼长度,纵轴为花瓣长度,不同颜色代表不同物种。setosa 物种的气泡主要集中在左下角,花瓣长度较短,花萼长度也较短,且气泡相对较小,表明其花萼宽度较窄;versicolor 物种的气泡分布在中间区域,花瓣长度和花萼长度处于中等水平,气泡大小适中;virginica 物种的气泡则多位于右上角,花瓣长度和花萼长度都较长,气泡较大,显示花萼宽度较宽。图例中明确标注了气泡大小对应的花萼宽度数值范围,便于读者准确理解数据所表达的信息,不同物种的数据点在图中有较为明显的分组趋势,有助于直观区分物种间的差异。结果图如下所示:

三、相关图
1、概念
相关图是一种用于展示多个变量之间相关性的矩阵形式图表。它通过计算每对变量之间的相关系数(如皮尔逊相关系数),并将这些系数以热力图的形式呈现,从而直观地展示变量之间的线性关系强度和方向。
2、特点
(1)直观性强:相关图通过颜色深浅和数值标注直观地展示了变量之间的相关性强度。颜色越深,表示相关性越强;颜色越浅,表示相关性越弱。正相关用一种颜色(如红色),负相关用另一种颜色(如蓝色),从而清晰地展示相关性的方向。
(2)多变量分析:相关图能够同时展示多个变量之间的两两相关性,适用于多变量数据集的相关性分析。在一个图表中可以快速识别出哪些变量之间存在强相关性,哪些变量之间存在弱相关性或无相关性。
(3)对称性:相关矩阵是对称的,因为变量 A 和变量 B 的相关系数与变量 B 和变量 A 的相关系数相同。这种对称性使得图表更加简洁和易于解读。
(4)数值范围明确:相关系数的取值范围在 [−1,1] 之间。1 表示完全正相关,-1 表示完全负相关,0 表示无相关性。这种明确的数值范围使得结果易于理解和解释。
(5)适用于初步探索:相关图通常用于数据预处理阶段,帮助分析师快速了解变量之间的关系,从而为后续的建模和分析提供指导。例如,在特征选择时,可以剔除与目标变量相关性较低的特征,或者处理高度相关的特征以避免多重共线性问题。
3、应用场景
(1)数据预处理和探索性分析:在数据分析的初步阶段,相关图是理解数据集中变量之间关系的重要工具。通过相关图,可以快速识别出哪些变量之间存在强相关性,哪些变量之间存在弱相关性或无相关性。例如,在处理客户数据时,可以使用相关图分析年龄、收入、消费金额等变量之间的关系,为后续的建模提供依据。
(2)特征选择:在机器学习项目中,相关图可以帮助选择与目标变量高度相关的特征,同时剔除与目标变量相关性较低的特征。这有助于提高模型的性能和解释性。例如,在预测房价时,可以使用相关图分析房屋面积、房间数量、地理位置等特征与房价之间的相关性,选择最相关的特征进行建模。
(3)多重共线性检测:在回归分析中,相关图可以用于检测多重共线性问题。如果两个或多个自变量之间存在高度相关性,可能会对回归模型的稳定性和解释性产生不利影响。例如,在分析经济发展指标时,可以使用相关图检测GDP、人均收入、就业率等指标之间的相关性,避免在回归模型中使用高度相关的变量。
(4)投资组合分析:在金融领域,相关图可以用于分析不同资产之间的相关性,帮助投资者构建多元化的投资组合。通过选择相关性较低的资产,可以降低投资组合的风险。例如,可以使用相关图分析股票、债券、大宗商品等资产类别之间的相关性,优化投资组合的配置。
(5)生物信息学:在生物信息学中,相关图可以用于分析基因表达数据,识别基因之间的相关性模式。这有助于理解基因的功能和调控机制。例如,在研究癌症基因表达数据时,可以使用相关图分析不同基因之间的表达相关性,寻找潜在的生物标志物。
4、代码实现过程及结果
(1)代码实现过程
该代码段旨在生成鸢尾花数据集中特征之间的相关矩阵图,以便全面观察各特征间的关系。首先设定绘图尺寸为 10×8 英寸,利用 seaborn 的 pairplot 函数处理数据框的前四列特征,指定子图高度和宽高比。pairplot 会自动创建所有特征两两组合的散点图,并在对角线位置生成各特征的直方图,直观呈现数据分布。设置图表总标题,并调整位置及字体,随后尝试保存图片,若过程中出现异常则捕获并打印错误信息。整体代码简洁高效,借助 seaborn 的强大功能快速实现多变量关系的可视化,帮助分析人员迅速把握数据特征间的相关性。完整代码如下所示:
# 3. 相关矩阵图(单独保存)
try:
plt.figure(figsize=(10, 8))
pair_plot = sns.pairplot(df.iloc[:, :4], height=1.8, aspect=0.9)
pair_plot.fig.suptitle("相关矩阵图 - 特征关系矩阵", y=1.02, fontsize=15, fontproperties=font_prop)
pair_plot.savefig('pairplot.png', dpi=300, bbox_inches='tight')
plt.show()
except Exception as e:
print(f"相关矩阵图生成失败: {e}")
(2)结果
这张相关矩阵图全面展示了鸢尾花四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)之间的相互关系。图中每个非对角线子图均为散点图,呈现两个特征间的分布趋势,例如花瓣长度与花瓣宽度存在较强正相关,数据点聚集程度高;而花萼长度与花瓣宽度的相关性相对较弱,分布较为分散。对角线上的直方图清晰显示各特征自身的数据分布情况,如花萼宽度大致呈正态分布,花瓣宽度则分布较为集中且偏态。整体矩阵布局紧凑,通过蓝色调统一风格,便于观察比较不同特征组合间的关系强度与模式,为深入理解鸢尾花数据特征提供了直观且全面的视角。结果图如下所示:

四、热力图
1、概念
热力图是一种通过颜色深浅来表示数值大小的二维数据可视化方法。它通常用于展示矩阵形式的数据,例如相关矩阵、混淆矩阵或地理数据等。颜色映射(colormap)将数值转换为颜色,使得数据的大小关系更加直观。
2、特点
(1)直观性强:热力图通过颜色直观地表示数据的大小关系。颜色的深浅直接反映数值的大小,使得数据的分布和趋势一目了然。例如,颜色越深表示数值越大,颜色越浅表示数值越小。
(2)多维度展示:热力图可以展示二维数据的多个维度。横轴和纵轴分别表示两个维度,颜色表示第三个维度的数值大小。例如,在展示地理数据时,横轴和纵轴可以表示地理坐标,颜色表示人口密度。
(3)适用于大规模数据:热力图可以处理大规模的二维数据,即使数据量较大,也能通过颜色的变化清晰地展示数据的分布。当然,如果数据过于复杂,可能需要进行数据聚合或降维处理。
(4)灵活性高:热力图可以通过不同的颜色映射(如 viridis、plasma、inferno、magma 等)来适应不同的数据类型和展示需求。例如,可以使用 viridis 颜色映射展示连续型数据,使用 coolwarm 颜色映射展示正负对称的数据。
(5)易于理解:热力图的结构简单,易于理解,适合向非专业人士展示数据关系。它不需要复杂的图表解读知识,普通观众也能快速理解图表所表达的内容。
3、应用场景
(1)生物信息学:在基因表达分析中,热力图常用于展示基因在不同样本中的表达水平。通过颜色的变化,可以快速识别出基因表达的模式和差异。例如,可以使用热力图展示不同组织样本中基因的表达水平,帮助研究人员识别潜在的生物标志物。
(2)金融数据分析:在金融领域,热力图可以用于展示股票、债券等金融资产之间的相关性,帮助投资者构建多元化的投资组合。例如,可以使用热力图展示不同股票之间的相关性,优化投资组合的配置。
(3)地理信息系统(GIS):在地理信息系统中,热力图可以用于展示地理空间数据,如人口密度、犯罪率、交通流量等。例如,可以使用热力图展示城市中不同区域的人口密度,帮助城市规划者优化资源配置。
(4)机器学习:在机器学习中,热力图可以用于展示特征之间的相关性、模型的混淆矩阵等。这有助于理解模型的性能和数据的特征。例如,可以使用热力图展示分类模型的混淆矩阵,帮助分析模型的分类效果。
(5)社交媒体分析:在社交媒体分析中,热力图可以用于展示用户活动的时间分布、地理位置分布等。例如,可以使用热力图展示用户在不同时间段的活跃度,帮助营销人员制定推广策略。
(6)热学分析:在工程和物理领域,热力图可以用于展示温度分布、压力分布等物理量的二维分布情况。例如,可以使用热力图展示建筑物内部的温度分布,帮助优化供暖和制冷系统。
4、代码实现过程及结果
(1)代码实现过程
这段代码用于绘制鸢尾花数据集中特征之间的相关性热力图,通过颜色深浅直观展示不同特征之间的相关性强度和方向。代码首先计算数据框前四列特征的相关性矩阵,并保留两位小数。接着创建一个掩码,用于隐藏相关性矩阵的上三角部分,避免重复信息。利用 seaborn 的 heatmap 函数绘制热力图,指定颜色映射为 "coolwarm",设置数值范围从 -1 到 1,添加网格线以增强可读性,并在每个格子中标注相关系数。设置图表标题、优化布局并保存图片。整体代码简洁明了,有效利用热力图形式呈现多特征间的相关性。完整代码如下所示:
# 4. 热力图
plt.figure(figsize=(8, 6))
corr_matrix = df.iloc[:, :4].corr().round(2)
mask = np.triu(np.ones_like(corr_matrix, dtype=bool))
heatmap = sns.heatmap(corr_matrix, annot=True, cmap="coolwarm",
mask=mask, vmin=-1, vmax=1, linewidths=0.5)
plt.title("热力图 - 特征相关性矩阵", fontsize=15, fontproperties=font_prop)
plt.tight_layout()
plt.savefig('heatmap.png', dpi=300, bbox_inches='tight')
plt.show()
(2)结果
这张热力图生动呈现了鸢尾花四个特征之间的相关性矩阵。横纵轴分别代表四个特征,颜色从蓝色(负相关)到红色(正相关)渐变,直观反映相关性方向和强度。花瓣长度与花瓣宽度的相关性极高(0.96),表明它们之间存在很强的正相关关系;花萼长度与花瓣长度的相关性为 0.87,也显示出较强的正相关。相反,花萼宽度与其他特征的相关性普遍较低,如与花瓣长度的相关性为 -0.43,与花瓣宽度的相关性为 -0.37,说明存在一定的负相关关系。通过热力图可以迅速识别出哪些特征之间存在显著的相关性,为后续数据分析和建模提供了重要参考。结果图如下所示:

五、二维密度图
1、概念
二维密度图是一种用于展示两个变量联合分布密度的图表。它通过颜色或等高线表示数据点在不同区域的密度,帮助我们直观地了解数据的聚集程度和分布模式。二维密度图特别适用于处理大量数据点,可以有效避免散点图中的过度绘制(overplotting)问题。
2、特点
(1)直观展示数据维度:二维密度图通过颜色或等高线直观地展示数据在不同区域的密度。颜色越深或等高线越密集,表示该区域的数据点越多。例如,颜色从浅到深表示密度从低到高。
(2)避免过度绘制:当数据量较大时,散点图可能会出现过度绘制的问题,导致难以看清数据的分布。二维密度图通过聚合数据点,有效解决了这一问题。例如,在展示数百万个数据点时,二维密度图能够更清晰地展示数据的整体分布。
(3)多种可视化方式:二维密度图可以以不同的形式展示,包括热力图样式(颜色深浅表示密度)和等高线图样式(线条表示密度水平)。例如,可以使用热力图样式展示密度的连续变化,使用等高线图样式展示密度的分层结构。
(4)灵活性高:二维密度图可以通过调整颜色映射、带宽参数等,适应不同的数据类型和展示需求。例如,可以使用不同的颜色映射(如 viridis、plasma、inferno 等)来适应不同的视觉偏好。
(5)易于理解:二维密度图的结构相对简单,易于理解,适合向非专业人士展示数据关系。它不需要复杂的图表解读知识,普通观众也能快速理解图表所表达的内容。
3、应用场景
(1)数据分布分析:在数据分析中,二维密度图常用于展示两个变量的联合分布情况,帮助分析师快速了解数据的聚集区域和异常值。例如,在分析用户行为数据时,可以使用二维密度图展示用户在不同时间段的活跃度和消费金额的联合分布。
(2)异常值检测:通过观察二维密度图,可以快速识别出数据中的异常值或低密度区域。这些区域可能表示异常的组合或罕见的事件。例如,在金融交易数据中,可以使用二维密度图检测异常的交易金额和交易时间组合。
(3)地理数据分析:在地理信息系统中,二维密度图可以用于展示地理空间数据的密度分布,如人口密度、车祸发生率等。例如,可以使用二维密度图展示城市中不同区域的人口密度,帮助城市规划者优化资源配置。
(4)生物统计学:在生物统计学中,二维密度图可以用于展示生物数据的分布,如基因表达水平和蛋白质含量的联合分布。例如,可以使用二维密度图分析不同基因在不同组织中的表达水平分布。
(5)市场营销:在市场营销中,二维密度图可以用于分析消费者行为,如购买金额和购买频率的联合分布。例如,可以使用二维密度图展示不同消费者的购买金额和购买频率的分布,帮助营销人员制定精准的营销策略。
(6)图像处理:在图像处理领域,二维密度图可以用于展示图像的灰度值分布或颜色分布。例如,可以使用二维密度图分析图像的灰度值分布,帮助识别图像中的重要特征。
4、代码实现过程及结果
(1)代码实现过程
该代码用于绘制鸢尾花数据集中花萼长度与花瓣长度的二维密度图,以展示不同物种在二维空间中的分布密度。代码首先设定绘图尺寸为 10×8 英寸,利用 seaborn 的 kdeplot 函数实现密度图绘制。指定数据源为包含花萼长度和花瓣长度的数据框,按物种进行着色区分,设置 fill 参数为 True 以填充密度区域,alpha 参数控制填充区域的透明度,levels 参数定义等高线级别数量,palette 参数选择颜色调色板,thresh 参数设定密度阈值以过滤低密度区域。最后添加图表标题、优化布局并保存图片,整体代码结构清晰,有效利用二维密度图展示数据分布特征。完整代码如下所示:
# 5. 二维密度图
plt.figure(figsize=(10, 8))
sns.kdeplot(data=df, x='sepal length (cm)', y='petal length (cm)',
hue='species', fill=True, alpha=0.3, levels=5,
palette="viridis", thresh=0.1)
plt.title("二维密度图 - 花萼与花瓣长度分布", fontsize=15, fontproperties=font_prop)
plt.tight_layout()
plt.savefig('density_plot.png', dpi=300, bbox_inches='tight')
plt.show()
(2)结果
这张二维密度图直观呈现了鸢尾花三种物种(setosa、versicolor、virginica)在花萼长度与花瓣长度二维空间中的分布密度情况。横轴代表花萼长度,纵轴代表花瓣长度。不同颜色区域表示不同物种的密度分布,颜色越深表示该区域数据点密度越高。setosa 物种主要集中在左下角区域,花瓣长度较短,花萼长度也较短,且分布较为集中;versicolor 物种分布在中间区域,花萼长度和花瓣长度处于中等水平,密度区域有一定范围;virginica 物种则多位于右上角,花萼长度和花瓣长度都较长,分布区域较为明显。通过密度图可以清晰观察到不同物种在特征空间中的聚集趋势和分布范围,有助于理解物种间的特征差异和分布模式。结果图如下所示:

六、平行坐标图
1、概念
平行坐标图是一种用于展示多维数据的可视化方法。在平行坐标图中,每个维度(变量)被表示为一条垂直轴,所有轴平行排列。每个数据点被表示为一条折线,折线在每个轴上的位置对应于该数据点在该维度上的值。通过这种方式,平行坐标图可以直观地展示多维数据的分布和模式。
2、特点
(1)多维度展示:平行坐标图能够展示多个维度的数据,每个维度对应一条垂直轴。通过多条轴的并列展示,可以同时观察多个变量之间的关系。例如,可以同时展示年龄、收入、消费金额和教育水平等多个变量。
(2)模式识别:平行坐标图通过折线连接不同维度上的数据点,使得数据的模式和趋势易于识别。观察者可以快速识别出数据的聚类、离群点和趋势。例如,可以识别出某些数据点在多个维度上具有相似的高值或低值,形成明显的聚类。
(3)支持分类数据:平行坐标图可以结合颜色或其他视觉属性来区分不同类别的数据。这有助于分析不同类别之间的差异和共同点。例如,可以使用不同颜色表示不同类别的客户,观察它们在各个维度上的分布。
(4)灵活性高:平行坐标图可以通过调整轴的顺序、缩放轴的范围等操作,来适应不同的数据类型和展示需求。例如,可以调整轴的顺序以更好地展示变量之间的关系,或者缩放轴的范围以突出某些数据特征。
(5)适用于中等规模数据:平行坐标图适合用于中等规模的数据集。如果数据量过大,可能会出现过度绘制(overplotting)的问题,导致图表难以解读。但可以通过抽样或聚合数据来解决这一问题。
3、应用场景
(1)多维数据探索:在数据分析的初步阶段,平行坐标图是探索多维数据的重要工具。通过观察平行坐标图,可以快速识别出数据中的模式、聚类和离群点。例如,在分析客户数据时,可以使用平行坐标图探索年龄、收入、消费金额和教育水平等多个维度的关系。
(2)特征选择:在机器学习项目中,平行坐标图可以帮助选择与目标变量相关性较高的特征,同时剔除与目标变量相关性较低的特征。例如,在预测客户流失时,可以使用平行坐标图分析不同特征(如消费金额、投诉次数、服务使用频率等)与客户流失之间的关系。
(3)分类数据分析:在分类任务中,平行坐标图可以通过颜色或其他视觉属性区分不同类别的数据,帮助分析不同类别之间的差异和共同点。例如,在分析不同类型的疾病时,可以使用平行坐标图展示各种症状和检查指标在不同疾病类型中的分布。
(4)工程设计和优化:在工程领域,平行坐标图可以用于展示设计参数与性能指标之间的关系,帮助优化设计方案。例如,在汽车设计中,可以使用平行坐标图展示发动机功率、油耗、重量和价格等参数之间的关系,帮助工程师优化设计。
(5)金融分析:在金融领域,平行坐标图可以用于分析股票、债券等金融资产的多个特征,如价格、成交量、市盈率等。例如,可以使用平行坐标图分析不同股票的价格波动、成交量和市盈率之间的关系,帮助投资者做出决策。
4、代码实现过程及结果
(1)代码实现过程
这段代码用于绘制鸢尾花数据集的平行坐标图,以对比不同物种在四个特征上的差异。首先设定绘图尺寸为 10×6 英寸,然后调用 pandas 的 parallel_coordinates 函数实现绘图,指定数据框和分类列 “species”,并选择 “viridis” 色彩映射以区分不同物种。最后设置图表标题、优化布局并保存图片。平行坐标图能有效展示多维数据的特征对比,通过不同颜色的线条直观呈现各物种在各特征维度上的分布和差异,代码简洁且功能明确。 完整代码如下:
# 6. 平行坐标图
plt.figure(figsize=(10, 6))
parallel_coordinates(df, 'species', colormap='viridis')
plt.title("平行坐标图 - 特征对比", fontsize=15, fontproperties=font_prop)
plt.tight_layout()
plt.savefig('parallel_plot.png', dpi=300, bbox_inches='tight')
plt.show()
(2)结果
这张平行坐标图全面展示了鸢尾花三种物种(setosa、versicolor、virginica)在四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)上的分布与差异。每条线代表一个鸢尾花样本,不同颜色代表不同物种。从图中可以观察到,setosa 物种的花瓣长度和宽度普遍较小,线条集中在左下区域;versicolor 物种的特征值处于中等水平,线条分布较为分散;virginica 物种的花瓣长度和宽度较大,线条多集中在右上区域。通过平行坐标图可以清晰地看到不同物种在各特征维度上的分布趋势和差异,尤其适用于多维数据的对比分析,为物种分类和特征选择提供了直观依据。结果图如下所示:

七、雷达图
1、概念
雷达图(Radar Chart),又称蜘蛛图(Spider Chart)或星形图(Star Chart),是一种用于展示多维数据的可视化方法。在雷达图中,每个维度(变量)被表示为从中心点向外辐射的轴,所有轴的长度相同且彼此 equi-angular(等角)排列。每个数据点在各个维度上的值通过从中心点向外延伸的线段表示,线段的长度与该维度上的值成正比。通过连接这些线段的端点,形成一个多边形,从而直观地展示数据点在多个维度上的表现。
2、特点
(1)多维度展示:雷达图能够同时展示多个维度的数据,每个维度对应一个轴。通过多个轴的等角排列,可以直观地比较数据点在不同维度上的表现。例如,可以同时展示员工在多个技能(如沟通能力、技术能力、团队合作、领导力等)上的评分。
(2)直观比较:雷达图通过多边形的形状直观地展示数据点在各个维度上的强弱。观察者可以快速识别出数据点的优势和劣势维度。例如,一个多边形在某些轴上向外突出,表示在这些维度上表现较好;而在某些轴上向内收缩,表示在这些维度上表现较差。
(3)支持多数据点比较:雷达图可以同时展示多个数据点,通过不同颜色或多边形的叠加,方便比较不同数据点在各个维度上的差异。例如,可以比较不同员工在多个技能上的评分,或不同产品的多个特性评分。
(4)易于识别模式:雷达图通过多边形的形状展示数据的模式和趋势。某些模式(如均衡发展、某一方面突出等)可以很容易地识别出来。例如,一个多边形接近圆形,表示数据点在各个维度上表现均衡;而一个多边形在某个区域突出,表示在该区域的维度上表现突出。
(5)灵活性高:雷达图可以通过调整轴的范围、颜色、线条样式等参数,适应不同的数据类型和展示需求。例如,可以调整轴的范围以突出某些维度的差异,或使用不同的颜色区分不同的数据点。
3、应用场景
(1)绩效评估:在人力资源管理中,雷达图常用于展示和比较员工在多个绩效指标上的表现。通过雷达图,可以直观地看到员工的优势和劣势,帮助制定培训和发展计划。例如,可以使用雷达图展示员工在沟通能力、技术能力、团队合作、领导力等维度上的评分。
(2)市场分析:在市场研究中,雷达图可以用于比较不同产品或品牌的多个特性或优势。通过雷达图,可以快速识别出产品的优势和劣势,以及与竞争对手的差距。例如,可以使用雷达图比较不同智能手机在电池寿命、摄像头质量、处理器速度、价格等维度上的表现。
(3)体育分析在体育领域,雷达图常用于展示运动员在多个技能或指标上的表现。通过雷达图,可以直观地比较不同运动员的能力,或者评估同一名运动员在不同赛季的表现。例如,可以使用雷达图展示足球运动员在速度、耐力、射门准确性、传球成功率等维度上的评分。
(4)学术评估:在教育领域,雷达图可以用于展示学生的学术表现或技能水平。通过雷达图,可以快速识别出学生的强项和弱项,帮助制定个性化的学习计划。例如,可以使用雷达图展示学生在数学、语文、英语、科学等学科上的成绩。
(5)健康评估:在医疗健康领域,雷达图可以用于展示患者的多个健康指标。通过雷达图,可以直观地比较患者在不同指标上的表现,帮助医生制定治疗计划。例如,可以使用雷达图展示患者的血压、血糖、胆固醇、体重等健康指标。
4、代码实现过程及结果
(1)代码实现过程
这段代码用于绘制鸢尾花三种物种的雷达图,直观对比它们在四个特征上的平均表现。首先定义特征类别,计算每种物种各特征的平均值并转换为列表形式。为确保雷达图闭合,将每种物种的第一个特征值追加到列表末尾,并生成对应的角度值。创建极坐标子图,使用不同颜色和透明度填充三种物种的雷达区域,去掉 y 轴标签,设置图表标题,指定网格线标签为特征名称,添加图例并保存图片。雷达图能清晰展示多维特征的对比情况,代码结构合理,有效实现了物种间特征的综合对比。完整代码如下所示:
# 7. 雷达图
categories = ['sepal length', 'sepal width', 'petal length', 'petal width']
values_setosa = df[df['species'] == 'setosa'].iloc[:, :4].mean().tolist()
values_versicolor = df[df['species'] == 'versicolor'].iloc[:, :4].mean().tolist()
values_virginica = df[df['species'] == 'virginica'].iloc[:, :4].mean().tolist()
categories = [*categories, categories[0]]
values_setosa = [*values_setosa, values_setosa[0]]
values_versicolor = [*values_versicolor, values_versicolor[0]]
values_virginica = [*values_virginica, values_virginica[0]]
angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
fig, ax = plt.subplots(figsize=(8, 6), subplot_kw=dict(polar=True))
ax.fill(angles, values_setosa, alpha=0.25, label='setosa')
ax.fill(angles, values_versicolor, alpha=0.25, label='versicolor')
ax.fill(angles, values_virginica, alpha=0.25, label='virginica')
ax.set_yticklabels([])
ax.set_title("雷达图 - 物种特征对比", fontsize=15, fontproperties=font_prop)
ax.set_thetagrids(np.degrees(angles), categories)
plt.legend(loc='upper right')
plt.tight_layout()
plt.savefig('radar_plot.png', dpi=300, bbox_inches='tight')
plt.show()
(2)结果
这张雷达图直观对比了鸢尾花三种物种(setosa、versicolor、virginica)在四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)上的平均表现。每个轴代表一个特征,径向距离表示该特征的数值大小。setosa 物种在花瓣长度和宽度上的数值较小,雷达区域集中在内侧;versicolor 物种的特征值相对均衡,雷达区域居中;virginica 物种在花瓣长度和宽度上数值较大,雷达区域向外扩展。通过雷达图可以清晰看到不同物种在各特征上的优势和差异,尤其是 virginica 物种在花瓣特征上的显著优势,以及 setosa 物种在花瓣特征上的劣势,为物种识别和特征分析提供了有力支持。结果图如下所示:

八、桑葚图
1、概念
桑葚图,即桑基能量分流图或桑基能量平衡图,是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小。它通过使用有向箭头连接不同的节点来显示流动的路径和量级。这种图因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,后以其名字命名。它主要用于展示能量、物质或成本的流动,能够清晰地表示从一个流程到另一个流程的流向变化。
2、特点
(1)直观展示流量大小:桑葚图通过箭头的宽度直观地展示流量的大小。箭头越宽表示流量越大,箭头越窄表示流量越小。例如,展示能源流动时,箭头宽度大的路径表示能源消耗大的部分,箭头宽度小的路径表示能源消耗小的部分。
(2)展示节点和流动路径:桑葚图由节点(代表特定实体或分类)和箭头(代表流动路径)组成。节点表示系统的状态或类别,箭头表示从一个节点到另一个节点的流动。例如,在展示用户流量时,节点可以表示不同页面或功能,箭头表示用户从一个页面到另一个页面的跳转路径。
(3)展示复杂路径:桑葚图可以清晰地展示多个节点之间的复杂路径和分支。通过连接不同的节点和箭头,能够直观地看到数据的流向和分支情况。例如,在展示能源生产与消费过程时,桑葚图可以展示从能源生产到加工、运输、消费等多个环节的复杂路径。
(4)颜色编码:桑葚图可以使用颜色来编码不同的节点或流动路径,以帮助区分不同的实体或类别。通过颜色编码,可以更直观地识别不同的流程和分支。例如,使用不同的颜色表示不同的能源类型(如煤炭、石油、天然气等),帮助用户快速识别不同能源的流动路径。
(5)动态展示:桑葚图可以用于展示动态的数据流动过程,通过动画效果展示数据随时间的变化。这有助于分析数据的动态变化趋势。例如,展示用户在不同时间段内的流量变化,帮助分析用户行为随时间的变化。
(6)灵活性高:桑葚图可以根据不同的数据和需求进行定制化展示,灵活调整节点和箭头的样式、颜色、标签等。例如,可以调整箭头的宽度比例、节点的大小和形状,以适应不同的数据可视化需求。
3、应用场景
(1)能源流动分析:桑葚图在能源领域广泛应用,用于展示能源从生产到消费的全过程流动,包括生产、加工、运输、消费等环节。例如,展示煤炭、石油、天然气等能源从开采到发电、供暖、工业生产等不同用途的流动路径,帮助分析能源利用效率和损失点。
(2)物质流动分析:在环境科学和工业工程中,桑葚图可以用于展示物质的流动过程,如原材料的采购、加工、产品制造、废弃物处理等。例如,展示塑料制品的生命周期,包括原材料采购、制造、消费、回收和废弃物处理等环节,帮助分析物质循环和污染控制。
(3)商业和物流:桑葚图在商业和物流领域中用于分析用户流量、产品流向、供应链等,帮助优化业务流程和资源分配。例如,展示电商平台的用户流量,从首页到商品浏览、加入购物车、下单支付、完成购买等环节的用户流失情况,帮助优化用户体验和转化率。
(4)资源分配分析:桑葚图可以用于展示资源分配和使用情况,帮助分析资源的合理性和优化配置。例如,展示企业内部的资金分配,从总收入到不同部门的预算分配、运营成本、投资等环节,帮助提高资源利用效率。
(5)人口流动分析:在社会科学和城市规划中,桑葚图可以用于展示人口的流动情况,如移民、通勤等。例如,展示城市之间的人口流动情况,从一个城市到另一个城市的迁移路径和数量,帮助城市规划者进行资源分配和政策制定。
(6)学术研究:在学术研究中,桑葚图可以用于展示研究数据的流动和转化过程,如论文引用、知识传播等。例如,展示不同学术领域之间的论文引用关系,帮助研究人员了解知识的传播路径和影响。
(7)教育和培训:在教育领域,桑葚图可以用于展示学习路径和知识结构,帮助学生理解课程内容的逻辑关系。例如,展示一门课程的知识体系,从基础知识到高级应用的路径和内容分布,帮助学生规划学习路线。
4、代码实现过程及结果
(1)代码实现过程
这段代码用于绘制桑基图,以展示鸢尾花不同物种到分组的分布情况。首先设定绘图尺寸为 12×8 英寸,利用 matplotlib 的 Sankey 类创建桑基图对象。通过 add 方法为桑基图添加数据流,分别设置 flows 参数指定流量(正数为流入,负数为流出),labels 参数指定标签以标识不同物种和分组,orientations 参数定义各节点的方向。最后调用 finish 方法完成桑基图的绘制,设置图表标题、优化布局并保存图片。桑基图通过流动的带子直观展示数据从来源到目标的分布情况,代码结构简洁,有效实现了物种到分组的可视化分析。完整代码如下所示:
# 8. 桑基图
import matplotlib.pyplot as plt
import networkx as nx
from matplotlib.sankey import Sankey
plt.figure(figsize=(12, 8))
sankey = Sankey(unit=None)
sankey.add(flows=[50, 50, 50, -50, -50, -50],
labels=['setosa', 'versicolor', 'virginica', 'Group A', 'Group B', 'Group C'],
orientations=[0, 0, 0, 1, 1, 1])
sankey.finish()
plt.title("桑基图 - 物种分布", fontsize=15, fontproperties=font_prop)
plt.tight_layout()
plt.savefig('sankey_plot.png', dpi=300, bbox_inches='tight')
plt.show()
(2)结果
这张桑基图直观展示了鸢尾花三种物种(setosa、versicolor、virginica)到三个分组(Group A、Group B、Group C)的分布情况。图中三条蓝色带子分别代表三种物种的数量,宽度表示数量多少。setosa 物种全部流入 Group A,versicolor 物种全部流入 Group B,virginica 物种全部流入 Group C,带子宽度均匀,表明每种物种的数量相同且完全对应到各自分组。桑基图通过直观的流动带子清晰呈现了物种与分组间的一一对应关系,为数据分类和分布分析提供了简洁明了的可视化支持。结果图如下所示:

九、总结
| 图表类型 | 概念 | 核心特点 | 典型应用场景 |
|---|---|---|---|
| 散点图 | 在二维坐标系中展示两个变量关系的图表,点代表观测值 | 直观展示相关性、清晰呈现数据分布、支持多维度扩展、适合大规模数据 | 相关性分析(如收入与消费)、数据分布研究、实验数据可视化、预测模型评估 |
| 气泡图 | 散点图的扩展,气泡大小表示第三变量 | 三维数据展示、直观量级对比、清晰数据分布、支持四维扩展 | 商业分析(销售额/利润/市场份额)、经济指标对比、市场营销效果评估、地理数据分析 |
| 相关图 | 矩阵形式展示多变量相关性的图表 | 颜色编码相关性强度、多变量同步分析、矩阵对称性、明确数值范围 | 数据探索性分析、机器学习特征选择、金融投资组合优化、基因相关性研究 |
| 热力图 | 用颜色深浅表示数值大小的二维图表 | 视觉化数值强度、多维度数据呈现、适合大规模数据、灵活配色方案 | 基因表达分析、金融资产相关性、城市热力图(人口/犯罪率)、模型混淆矩阵 |
| 二维密度图 | 展示双变量联合分布密度的图表 | 避免点重叠问题、密度可视化、多种呈现形式(热力/等高线)、揭示数据聚集区 | 用户行为模式分析、金融异常交易检测、人口密度分布、消费者行为研究 |
| 平行坐标图 | 用平行轴展示多维数据的图表 | 多维数据同步比较、模式识别能力强、支持分类数据对比、轴顺序可调 | 客户多维特征分析、疾病症状对比、工程参数优化、金融资产多指标评估 |
| 雷达图 | 辐射轴展示多维数据的星形图表 | 多维度直观对比、优劣势可视化、多实体同步比较、模式识别直观 | 员工技能评估、产品特性对比、运动员能力分析、健康指标监控 |
| 桑基图 | 用流带宽度表示流量的流程图 | 流量大小视觉化、节点与路径展示、复杂路径呈现、动态变化支持 | 能源流动分析、电商用户转化路径、供应链物流追踪、人口迁移研究 |
注:表格基于各类图表的本质特性整理,散点图与气泡图侧重变量关系,相关图与热力图聚焦相关性,密度图揭示分布模式,平行坐标与雷达图擅长多维对比,桑基图专精流程与流量分析。实际应用中可根据数据类型(离散/连续)、维度数量(2维/多维)和分析目标(关系/分布/对比/流程)选择最适图表类型。



8449

被折叠的 条评论
为什么被折叠?



