相关类相关的可视化图像总结

news2025/7/27 17:37:48

目录

一、散点图

二、气泡图

三、相关图

四、热力图

五、二维密度图

六、多模态二维密度图

七、雷达图

八、桑基图

九、总结


一、散点图

特点

        通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密度和趋势反映相关性强弱。

应用场景

        探索性数据分析、验证变量间关系假设,如身高与体重的关系、温度与销售额的关联。

实现过程

import numpy as np
import matplotlib.pyplot as plt
# 设置支持中文的字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC", "sans-serif"]
# 解决负号显示问题
plt.rcParams["axes.unicode_minus"] = False
# 生成示例数据
np.random.seed(42)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100) * 0.5
# 绘制散点图
plt.figure(figsize=(8, 6))
plt.scatter(x, y, color='blue', alpha=0.7, s=30)
plt.title('散点图:展示两变量线性关系')
plt.xlabel('变量X')
plt.ylabel('变量Y')
plt.grid(True, linestyle='--', alpha=0.7)
plt.show()
# 计算相关系数
correlation = np.corrcoef(x, y)[0, 1]
print(f'皮尔逊相关系数: {correlation:.4f}')

结果

二、气泡图

特点

        在散点图基础上增加第三个变量(气泡大小),可展示三维数据关系,气泡颜色还可表示第四维变量。

应用场景

        市场分析(如销售额、利润、市场份额)、城市数据可视化(人口、GDP、面积)。

实现过程

import plotly.express as px
import pandas as pd
import numpy as np
# 设置随机种子
np.random.seed(42)
# 生成模拟数据
n_countries = 20
countries = [
    '中国', '美国', '日本', '德国', '法国', '英国', '意大利', '加拿大',
    '俄罗斯', '巴西', '印度', '澳大利亚', '西班牙', '墨西哥', '韩国',
    '印度尼西亚', '土耳其', '沙特阿拉伯', '瑞士', '荷兰'
]
# 生成随机数据
gdp_per_capita = np.random.randint(1000, 80000, n_countries)
population = np.random.randint(5e6, 1.5e9, n_countries)
life_expectancy = np.random.uniform(60, 85, n_countries)
region = np.random.choice(['亚洲', '欧洲', '北美洲', '南美洲', '非洲', '大洋洲'], n_countries)
# 创建DataFrame
df = pd.DataFrame({
    '国家': countries,
    '人均GDP': gdp_per_capita,
    '人口': population,
    '预期寿命': life_expectancy,
    '地区': region
})
# 创建气泡图
fig = px.scatter(df, x="人均GDP", y="预期寿命", size="人口", color="地区",
                 hover_name="国家", log_x=True, size_max=60,
                 title="世界各国发展指标气泡图",
                 labels={
                     "人均GDP": "人均GDP (美元)",
                     "预期寿命": "预期寿命 (岁)",
                     "地区": "地理区域"
                 })
# 更新布局
fig.update_layout(
    font=dict(family="SimHei", size=12),
    legend_title="地理区域",
    height=600,
    width=1000
)
# 添加趋势线
fig.add_traces(
    px.scatter(df, x="人均GDP", y="预期寿命", trendline="ols").data[1]
)
# 显示图表
fig.show()
# 导出为HTML文件
fig.write_html("bubble_chart.html")

结果

三、相关图

特点

        展示多个变量间的相关系数矩阵,通常以数值或图形(如颜色、形状)表示相关强度和方向。

应用场景

        多变量数据分析、特征选择(如机器学习前筛选相关变量)。

实现过程

import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False
# 生成示例数据
np.random.seed(42)
data = pd.DataFrame({
    'var1': np.random.randn(100),
    'var2': 0.8 * np.random.randn(100) + 0.2 * np.random.randn(100),
    'var3': -0.5 * np.random.randn(100) + 0.5 * np.random.randn(100),
    'var4': np.random.randn(100)
})
# 计算相关系数矩阵
corr_matrix = data.corr()
# 绘制相关图
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f',
            linewidths=1, cbar_kws={'label': '相关系数'})
plt.title('相关系数矩阵图')
plt.show()

结果

四、热力图

特点

        用颜色矩阵展示数据值大小,可直观呈现二维数据的分布模式和热点区域。

应用场景

        基因表达数据、时间序列数据(如年度销售热力图)、矩阵数据可视化。

实现过程

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.cluster import hierarchy
# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False
# 生成示例数据:月度销售数据
np.random.seed(42)
n_products = 12
n_months = 12
# 创建产品名称和月份名称
products = [f'产品{i+1}' for i in range(n_products)]
months = [f'{i+1}月' for i in range(n_months)]
# 生成基础销售数据(有季节性和产品类别效应)
base_sales = np.random.rand(n_products, n_months) * 1000
# 添加季节性效应
seasonal_effect = np.sin(np.linspace(0, 2*np.pi, n_months)) * 300
for i in range(n_products):
    base_sales[i, :] += seasonal_effect * (0.5 + i/24)
# 添加产品类别效应
category_effect = np.random.rand(n_products) * 500
for i in range(n_products):
    base_sales[i, :] += category_effect[i]
# 添加随机噪声
sales_data = base_sales + np.random.randn(n_products, n_months) * 100
# 转换为DataFrame
df = pd.DataFrame(sales_data, index=products, columns=months)
plt.figure(figsize=(12, 10))
sns.heatmap(df, cmap="YlGnBu", annot=True, fmt=".0f",
            linewidths=0.5, cbar_kws={"label": "销售额"})
plt.title('月度产品销售额热力图')
plt.tight_layout()
plt.show()

结果

五、二维密度图

特点

        通过颜色或等高线展示二维数据的分布密度,比散点图更适合大数据量场景,可识别数据聚类和分布形态。

应用场景

        概率密度分析、金融数据分布(如股票收益率)、空间数据热点分析。

实现过程

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False
n_samples = 1000
mean = [0, 0]
cov = [[1, 0.7], [0.7, 1]]
x, y = np.random.multivariate_normal(mean, cov, n_samples).T
# 创建DataFrame
df_single = pd.DataFrame({
    'X': x,
    'Y': y
})
# 绘制二维密度图
plt.figure(figsize=(12, 10))
sns.kdeplot(x='X', y='Y', data=df_single, fill=True, cmap='Blues', alpha=0.7)
plt.title('二维密度图')
plt.grid(True, linestyle='--', alpha=0.6)
plt.tight_layout()
plt.show()

结果

六、多模态二维密度图

特点

        捕捉数据中多个密度峰值(模态),反映复杂集群结构,无需预设聚类数。

应用场景

        客户分群(消费行为)、金融风险(市场状态分类)、生物信息(细胞亚型)。

实现过程

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False
# 2. 多模态分布
# 创建两个不同的分布
n1 = 800
n2 = 500
# 第一个分布
mean1 = [2, 2]
cov1 = [[1, 0.5], [0.5, 1]]
x1, y1 = np.random.multivariate_normal(mean1, cov1, n1).T
# 第二个分布
mean2 = [-2, -2]
cov2 = [[1, -0.5], [-0.5, 1]]
x2, y2 = np.random.multivariate_normal(mean2, cov2, n2).T
# 合并数据
x_multi = np.concatenate([x1, x2])
y_multi = np.concatenate([y1, y2])
groups = np.concatenate([['A']*n1, ['B']*n2])
# 创建DataFrame
df_multi = pd.DataFrame({
    'X': x_multi,
    'Y': y_multi,
    'Group': groups
})
# 绘制多模态二维密度图
plt.figure(figsize=(12, 10))
sns.kdeplot(x='X', y='Y', hue='Group', data=df_multi,
           fill=True, common_norm=False, alpha=0.7,
           palette=['#FF9999', '#66B2FF'])
plt.title('多模态二维密度图')
plt.grid(True, linestyle='--', alpha=0.6)
plt.tight_layout()
plt.show()

结果

七、雷达图

特点

        以原点为中心辐射出多条坐标轴,每个样本用多边形连接各维度值,直观比较多变量综合表现。适合展示样本在多个维度的均衡性或偏科情况。

应用场景

        产品多维度评分(如手机的性能、价格、续航、拍照等)。人才评估(如员工的沟通、技术、管理、创新能力)。竞争对手分析(多指标对比)。

实现过程

import numpy as np
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei"]
plt.rcParams["axes.unicode_minus"] = False
# 定义评估维度
dimensions = ['技术能力', '沟通能力', '管理能力', '创新能力', '执行能力', '学习能力']
n_dims = len(dimensions)
# 生成3名员工的评分数据(1-10分)
employee1 = [8, 6, 5, 9, 7, 8]  # 技术和创新突出
employee2 = [7, 9, 8, 6, 9, 7]  # 沟通和执行突出
employee3 = [6, 7, 9, 7, 6, 9]  # 管理和学习突出
# 准备雷达图数据(闭合多边形)
angles = np.linspace(0, 2*np.pi, n_dims, endpoint=False).tolist()
employee1 += employee1[:1]
employee2 += employee2[:1]
employee3 += employee3[:1]
angles += angles[:1]
# 绘制雷达图
plt.figure(figsize=(10, 10))
ax = plt.subplot(111, polar=True)
# 绘制各维度网格线
ax.set_theta_offset(np.pi/2)  # 起始角度设为上方
ax.set_theta_direction(-1)  # 顺时针旋转
ax.set_thetagrids(np.degrees(angles[:-1]), dimensions)
ax.set_ylim(0, 10)
ax.grid(True, alpha=0.3)
# 绘制员工评分
ax.plot(angles, employee1, 'o-', linewidth=2, label='员工A')
ax.fill(angles, employee1, alpha=0.2)
ax.plot(angles, employee2, 's-', linewidth=2, label='员工B')
ax.fill(angles, employee2, alpha=0.2)
ax.plot(angles, employee3, '^-', linewidth=2, label='员工C')
ax.fill(angles, employee3, alpha=0.2)
# 添加图例和标题
plt.legend(loc='upper right', bbox_to_anchor=(0.1, 0.1))
plt.title('员工能力雷达图对比', fontsize=16)
plt.tight_layout()
plt.show()

结果

八、桑基图

特点

        用带箭头的流线表示数据流向,流线宽度反映流量大小,适合展示物质、能量、资金等的传递路径与分配比例。

应用场景

        供应链分析(原材料→加工→成品的价值流动)。网站流量分析(用户从不同渠道到各页面的跳转路径)。

实现过程

import plotly.graph_objects as go
import pandas as pd
# 生成用户流量数据(渠道→页面→转化的流向)
source = ['搜索引擎', '社交媒体', '直接访问', '搜索引擎', '社交媒体', '直接访问',
          '产品页', '产品页', '产品页', '首页', '首页', '首页']
target = ['首页', '首页', '首页', '产品页', '产品页', '产品页',
          '购物车', '详情页', '客服页', '购物车', '详情页', '客服页']
value = [150, 100, 80, 120, 80, 60, 90, 70, 40, 80, 60, 30]  # 流量值
# 创建DataFrame
data = pd.DataFrame({
    'source': source,
    'target': target,
    'value': value
})
# 定义节点标签
all_nodes = list(set(source + target))
node_indices = {node: i for i, node in enumerate(all_nodes)}
data['source_idx'] = data['source'].map(node_indices)
data['target_idx'] = data['target'].map(node_indices)
# 绘制桑基图
fig = go.Figure(data=[go.Sankey(
    node=dict(
        pad=15,
        thickness=20,
        line=dict(color="black", width=0.5),
        label=all_nodes
    ),
    link=dict(
        source=data['source_idx'],
        target=data['target_idx'],
        value=data['value']
    )
)])
# 更新布局
fig.update_layout(
    title_text="网站用户流量桑基图",
    width=800,
    height=600
)
fig.show()

结果

九、总结

图表类型特点应用场景优点缺点
散点图两点坐标展示变量关系探索两变量关联、异常值检测直观易读,发现线性关系仅支持两变量,大数据量易乱
气泡图散点 + 大小 / 颜色展示 3-4 维数据市场分析、城市数据可视化多维数据同屏展示,信息密度高维度过多易重叠,布局复杂
相关图矩阵展示多变量相关系数特征选择、多变量探索全面呈现相关性,数值颜色双标注仅反映线性相关,需结合验证
热力图颜色矩阵展示二维数据分布基因表达、时间序列、点击数据突出热点区域,适合模式识别数值精度低,颜色映射需谨慎
二维密度图等高线 / 颜色展示数据分布密度金融数据、空间数据、生物数据识别聚类和密度峰值,适合大数据抽象度高,参数影响结果
多模态密度图捕捉数据多个密度峰值客户分群、金融风险、细胞亚型自动识别集群,无需预设聚类数计算复杂,对噪声敏感
雷达图多轴多边形展示多维度均衡性产品对比、能力评估、综合实力分析直观展示优劣维度,适合综合评估维度限≤8,数值比较不精确
桑基图流线宽度展示数据流向与流量供应链、流量分析、贸易进出口清晰展示流动路径,流量对比直观节点过多易混乱,布局较复杂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2406789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…

对象回调初步研究

_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务&#xff0c;包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念&#xff0c;为通过安全认证接入的客户端提供线程。同样在该层上可…

STM32标准库-ADC数模转换器

文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”&#xff1a;输入模块&#xff08;GPIO、温度、V_REFINT&#xff09;1.4.2 信号 “调度站”&#xff1a;多路开关1.4.3 信号 “加工厂”&#xff1a;ADC 转换器&#xff08;规则组 注入…

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…

【若依】框架项目部署笔记

参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作&#xff1a; 压缩包下载&#xff1a;http://download.redis.io/releases 1. 上传压缩包&#xff0c;并进入压缩包所在目录&#xff0c;解压到目标…

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中&#xff0c;提供了一系列静态方法用于操作数组&#xff08;如排序、搜索、填充、比较等&#xff09;。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序&#xff08;sort&#xff09; 对数组进行升序…

链式法则中 复合函数的推导路径 多变量“信息传递路径”

非常好&#xff0c;我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题&#xff0c;统一使用 二重复合函数&#xff1a; z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y))​ 来全面说明。我们会展示其全微分形式&#xff08;偏导…

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…