相關類相關的可視化圖像總結

目錄

一、散點圖

二、氣泡圖

三、相關圖

四、熱力圖

五、二維密度圖

六、多模態二維密度圖

七、雷達圖

八、桑基圖

九、總結


一、散點圖

特點

????????通過點的位置展示兩個連續變量之間的關系,可直觀判斷線性相關、非線性相關或無相關關系,點的分布密度和趨勢反映相關性強弱。

應用場景

????????探索性數據分析、驗證變量間關系假設,如身高與體重的關系、溫度與銷售額的關聯。

實現過程

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.pswp.cn/web/83166.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83166.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83166.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git常用命令完全指南:從入門到精通

Git常用命令完全指南:從入門到精通 一、基礎配置命令 1. 用戶信息配置 # 設置全局用戶名 git config --global user.name "你的名字"# 設置全局郵箱 git config --global user.email "你的郵箱example.com"# 查看所有配置 git config --list…

為什么要創建 Vue 實例

核心原因:Vue 需要一個「控制中心」來驅動整個應用 你可以把 Vue 實例想象成你應用的**「大腦」或「引擎」。它負責協調模板、數據、邏輯和行為,將它們變成一個活的、可交互的應用**。沒有這個實例,你的代碼只是一堆靜態的 HTML、JavaScript 變量和函數,無法「活」起來。 …

正則持續學習呀

源匹配為 (.*): (.*)$ 替換匹配為 "$1": "$2", 可將headers改為字典 參考 【爬蟲軍火庫】如何優雅地復制請求頭 - 知乎

python --導出數據庫表結構(pymysql)

import pymysql from pymysql.cursors import DictCursor from typing import Optional, Dict, List, Anyclass DBSchemaExporter:"""MySQL數據庫表結構導出工具,支持提取表和字段注釋使用示例:>>> exporter DBSchemaExporter("local…

Kafka 消息模式實戰:從簡單隊列到流處理(二)

四、Kafka 流處理實戰 4.1 Kafka Streams 簡介 Kafka Streams 是 Kafka 提供的流處理庫,它為開發者提供了一套簡潔而強大的 API,用于構建實時流處理應用程序。Kafka Streams 基于 Kafka 的高吞吐量、分布式和容錯特性,能夠處理大規模的實時…

VAS1086Q 奇力科技線性芯片車規用品LED驅動芯片

一、產品概述 名稱與定位:VAS1086Q 是奇力科技(Chiplead Technology)推出的汽車級恒流 LED 驅動器,屬于 Value Added Solutions 系列,專為汽車 LED 照明應用提供高性價比方案。 核心功能: 支持 10~400mA 可…

適應性Java用于現代 API:REST、GraphQL 和事件驅動

在快速發展的軟件開發領域,REST、GraphQL 和事件驅動架構等新的 API 標準對于構建可擴展、高效的系統至關重要。Java 在現代 API 方面以其在企業應用中的穩定性而聞名,不斷適應這些現代范式的需求。隨著不斷發展的生態系統,Java 在現代 API 方…

浮點數精度問題(CSP38思考)

CSP38的第一題,考到了浮點數的除法(當然考完發現其實也可以不涉及浮點數,直接轉化為整型),我第一題一直卡到70、80分,故寫下此文。 浮點數的運算有精度損失問題,那么應該如何解決和避免呢&#…

F5 – TCP 連接管理:會話、池級和節點級操作

在 F5 BIG-IP 中,您可以在池成員級別或節點級別管理流向服務器的流量。節點級別狀態會影響與該節點關聯的所有池,而池成員狀態則僅限于單個池。了解每種方法以及何時使用它們對于順利進行維護窗口和流量管理至關重要。 池級狀態:啟用、禁用、強制離線、移除 在 BIG-IP 配置…

StoreView SQL,讓數據分析不受地域限制

作者:章建(處知) 引言 日志服務 SLS 是云原生觀測和分析平臺,為 Log、Metric、Trace 等數據提供大規模、低成本、實時的平臺化服務。SLS 提供了多地域支持【1】,方便用戶可以根據數據源就近接入 SLS 服務&#xff0c…

爬蟲基礎學習day2

# 爬蟲設計領域 工商:企查查、天眼查短視頻:抖音、快手、西瓜 ---> 飛瓜電商:京東、淘寶、聚美優品、亞馬遜 ---> 分析店鋪經營決策標題、排名航空:抓取所有航空公司價格 ---> 去哪兒自媒體:采集自媒體數據進…

Golang——10、日志處理和正則處理

日志處理和正則處理 1、logx日志處理1.1、logx簡介1.2、日志初始化與配置1.3、常用方法1.4、配合defer捕獲panic 2、正則處理2.1、正則表達式語法大全2.2、基本匹配2.3、常見函數使用2.4、從html提取漢字demo 1、logx日志處理 1.1、logx簡介 logx 是 go-zero 框架中用于日志記…

【LeetCode】3309. 連接二進制表示可形成的最大數值(遞歸|回溯|位運算)

LeetCode 3309. 連接二進制表示可形成的最大數值(中等) 題目描述解題思路Java代碼 題目描述 題目鏈接:LeetCode 3309. 連接二進制表示可形成的最大數值(中等) 給你一個長度為 3 的整數數組 nums。 現以某種順序 連接…

C++八股 —— 單例模式

文章目錄 1. 基本概念2. 設計要點3. 實現方式4. 詳解懶漢模式 1. 基本概念 線程安全(Thread Safety) 線程安全是指在多線程環境下,某個函數、類或代碼片段能夠被多個線程同時調用時,仍能保證數據的一致性和邏輯的正確性&#xf…

軟件工程:如何做好軟件產品

1、什么是產品 從項目到產品 產品:滿足行業共性需求的標準產品。即要能夠做到配置化的開發,用同一款產品最大限度地滿足不同客戶的需求,同時讓產品具有可以快速響應客戶需求變化的能力。 好的產品一定吸收了多個項目的共性,一定是…

Cinnamon修改面板小工具圖標

Cinnamon開始菜單-CSDN博客 設置模塊都是做好的,比GNOME簡單得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…

sqlsugar WhereIF條件的大于等于和等于查出來的坑

一、如下圖所示,當我用 .WhereIF(input.Plancontroltype > 0, u > u.Plancontroltype (DnjqPlancontroltype)input.Plancontroltype) 這里面用等于的時候,返回結果一條數據都沒有。 上圖中生成的SQL如下: SELECT id AS Id ,code AS …

centos 7 部署awstats 網站訪問檢測

一、基礎環境準備(兩種安裝方式都要做) bash # 安裝必要依賴 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 設置 Apache 開機自啟 systemctl start httpd # 啟動 Apache二、安裝 AWStats&#xff0…

React從基礎入門到高級實戰:React 實戰項目 - 項目四:企業級儀表盤

React 實戰項目:企業級儀表盤 歡迎來到 React 開發教程專欄 的第 29 篇!在前 28 篇文章中,我們從 React 的基礎概念逐步深入到高級技巧,涵蓋了組件設計、狀態管理、路由配置、性能優化和實時通信等核心內容。這一次,我…

STM32----IAP遠程升級

一、概述: IAP,全稱是“In-Application Programming”,中文解釋為“在程序中編程”。IAP是一種對通過微控制器的對外接口(如USART,IIC,CAN,USB,以太網接口甚至是無線射頻通道&#…