相关类可视化图像总结

在数据分析与可视化领域,理解变量间的相关性是揭示数据内在规律的关键。而相关类可视化图像则可以通过直观的图形语言,将数据关系转化为可感知的视觉模式,快速捕捉变量关联、分布特征及潜在趋势。 无论是探索性数据分析、多维度信息展示,还是复杂数据分布建模,这些工具均能在不同场景中发挥独特作用,成为数据洞察的重要助力。

本文所有的数据均来自kaggle的Global Air Quality (2024) - 6 Cities数据集

1. 散点图

介绍:通过平面上的点分布展示两个变量的关系,每个点代表一个数据样本,点的位置由两个变量的取值决定。

特点

  • 直观展示两个变量的关系,通过点分布呈现线性/非线性趋势、聚类或异常值;
  • 支持通过颜色、形状等编码引入额外分类变量,增强多维度信息展示;
  • 交互性强(如缩放、筛选),适合探索性数据分析,对异常值敏感度高。

应用场景

  • 科研领域分析变量关联性(如降雨量与作物产量);
  • 商业场景验证假设(如用户活跃度与留存率);
  • 教育研究中分析学习投入与成绩分布。

Python实现

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_csv('Global Air Quality (2024) - 6 Cities/Brasilia_Air_Quality.csv').head(100)

plt.rcParams['font.sans-serif'] = ['SimHei']  
plt.rcParams['axes.unicode_minus'] = False  
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  

plt.figure(figsize=(12, 8))
plt.scatter(df['PM2.5'], df['AQI'], alpha=0.5)
plt.title('巴西利亚2024年1月1-5号的PM2.5与AQI的散点图', fontsize=14)
plt.xlabel('PM2.5 浓度 (μg/m³)', fontsize=12)
plt.ylabel('空气质量指数 (AQI)', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)

z = np.polyfit(df['PM2.5'], df['AQI'], 1)
p = np.poly1d(z)

plt.plot(df['PM2.5'], p(df['PM2.5']), "r-", alpha=0.8)
plt.tight_layout()
plt.show()

在这里插入图片描述

2. 气泡图

介绍:在散点图基础上扩展的三维数据可视化图表,通过气泡位置表示两个变量,气泡大小表示第三个变量,形成多维度数据的整合展示。

特点

  • 在散点图基础上通过气泡大小引入第三个变量,实现三维数据整合;
  • 视觉上突出“大小差异”,适合分组数据对比(如不同类别下多指标差异);
  • 可结合颜色进一步区分第四维度(如不同区域数据),但需注意气泡尺寸的视觉准确性。

应用场景

  • 市场分析中展示产品价格、销量、利润的三维关系;
  • 地理数据可视化(如城市规模、人口、经济指标的综合对比);
  • 生态研究中分析物种栖息地、种群数量、威胁等级的关联。

Python实现

import pandas as pd
import plotly.express as px

df = pd.read_csv('Global Air Quality (2024) - 6 Cities/Sydney_Air_Quality.csv').head(100)

fig = px.scatter(df, 
                 x='NO2',
                 y='SO2',
                 size='PM2.5',
                 color='AQI',
                 hover_data=['Date'],
                 title='悉尼2024年空气质量气泡图',
                 labels={'NO2': '二氧化氮 (NO2)',
                         'SO2': '二氧化硫 (SO2)',
                         'PM2.5': 'PM2.5',
                         'AQI': '空气质量指数'},
                 color_continuous_scale='viridis')

fig.update_layout(
    plot_bgcolor='white',
    width=1000,
    height=600,
    title_x=0.5,
    title_font_size=20,
)

fig.update_xaxes(showgrid=True, gridwidth=1, gridcolor='LightGray')
fig.update_yaxes(showgrid=True, gridwidth=1, gridcolor='LightGray')
fig.show()

在这里插入图片描述

3. 热力图

介绍:通过颜色梯度表示二维矩阵中数值大小的可视化方法,颜色越深代表数值越高,用于全局展示数据的密度或分布模式。

特点

  • 用颜色梯度表示二维矩阵中的数值分布,全局视角突出“热点”区域(高密度或高数值区);
  • 常与层次聚类结合,对行列分组,揭示数据内在结构(如相似样本或变量聚为一类);
  • 适用于大规模数据(如时间×用户行为矩阵),颜色方案需适配数据特性(单极、双极或分类)。

应用场景

  • 生物信息学中展示基因表达谱的聚类模式;
  • 网页设计优化中分析用户点击热力分布;
  • 气候研究中可视化温度/降水的时空分布。

Python实现

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

def setup_plot_style():
    """Configure plot style settings for Chinese characters"""
    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    plt.rcParams['axes.unicode_minus'] = False

def create_correlation_heatmap(df, title):
    """Create and display a correlation heatmap"""
    correlation_matrix = df.select_dtypes(include=['float64', 'int64']).corr()
    
    plt.figure(figsize=(10, 8))
    sns.heatmap(correlation_matrix,
                annot=True,
                cmap='coolwarm',
                vmin=-1, vmax=1,
                center=0,
                fmt='.2f',
                square=True)
    
    plt.title(title, pad=20)
    plt.tight_layout()
    plt.show()

def main():
    df = pd.read_csv('Global Air Quality (2024) - 6 Cities/New_York_Air_Quality.csv')
    setup_plot_style()
    create_correlation_heatmap(df, '纽约空气质量指标热力图')

if __name__ == '__main__':
    main()

在这里插入图片描述

4. 二维密度图

介绍:通过核密度估计(KDE)展示两个连续变量联合分布密度的图表,用颜色或等高线表示数据点的聚集程度,解决散点图数据重叠问题。

特点

  • 通过核密度估计(KDE)解决散点重叠问题,用颜色或等高线展示变量联合分布的密度峰值与模式;
  • 可叠加散点保留个体细节,平衡全局趋势与局部数据点;
  • 对多峰分布(如性别差异导致的双峰值)和低密度区域敏感,需合理调参(如带宽)。

应用场景

  • 金融领域分析资产收益率与波动率的极端值分布;
  • 城市规划中研究人口密度与公共设施覆盖的关联模式;
  • 生物学中鉴定单细胞亚群的标志物表达分布。

Python实现

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  
plt.rcParams['axes.unicode_minus'] = False  

df = pd.read_csv('Global Air Quality (2024) - 6 Cities/London_Air_Quality.csv')
df = df.replace([np.inf, -np.inf], np.nan)
df = df.dropna(subset=['NO2', 'PM2.5'])
df['NO2'] = df['NO2'].clip(0, df['NO2'].quantile(0.99))
df['PM2.5'] = df['PM2.5'].clip(0, df['PM2.5'].quantile(0.99))

plt.close('all')

fig = plt.figure(figsize=(10, 8))
ax_main = plt.gca()

h = ax_main.hist2d(df['NO2'], df['PM2.5'], bins=50, cmap='viridis')
plt.colorbar(h[3], ax=ax_main, label='密度')

ax_main.set_xlabel('NO2 浓度')
ax_main.set_ylabel('PM2.5 浓度')

plt.suptitle('伦敦空气质量NO2与PM2.5二维密度图', y=0.95)
plt.show()

在这里插入图片描述

各图表优劣势对比表

图表类型核心优势不足之处特点应用场景
散点图双变量关系直观,异常值易识别,支持交互探索大数据点重叠严重,多变量需多图拼接基础二维可视化,异常值敏感度高探索性数据分析(如广告投入与销量关联)
气泡图三维数据整合,类别对比清晰,视觉突出“大小差异”气泡尺寸易误导比例判断,数据量大时遮挡严重多维度紧凑展示,适合少数据点多指标市场三维分析(价格-销量-利润综合评估)
热力图全局热点一目了然,适合大规模矩阵数据,支持行列聚类颜色选择影响可读性,丢失个体数据细节密度与聚类模式可视化基因表达谱、用户点击热力分布、相关系数矩阵
二维密度图解决数据重叠,清晰展示分布峰值与模式,可叠加散点补充细节依赖密度估计参数调参,小样本偏差大分布模式深度分析,多峰识别能力强金融风险极端值分析、单细胞亚群鉴定
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值