數據可視化——一圖勝千言

第04篇:數據可視化——一圖勝千言

寫在前面:大家好,我是藍皮怪!前面幾篇我們聊了統計學的基本概念、數據類型和描述性統計,這一篇我們要聊聊數據分析中最直觀、最有趣的部分——數據可視化。你有沒有發現,很多時候一張圖勝過千言萬語?無論是新聞報道、商業分析,還是朋友圈曬步數,數據可視化都無處不在。今天我們就來聊聊,如何用圖表讓數據"說話"。

🎯 這篇文章你能學到什么

  • 數據可視化的基本概念、發展與作用
  • 常見統計圖表的類型、適用場景、優缺點和解讀方法
  • 生活化案例與常見陷阱
  • Python可視化代碼示例
  • 如何用圖表講好數據的故事

1. 從生活說起:為什么要學數據可視化?

你有沒有遇到過這些場景:

📈 看新聞時:一張房價走勢圖讓你一秒看懂十年變化。

🍰 點外賣時:餅圖顯示不同菜品的銷量占比,幫你選出"爆款"。

🏃 刷朋友圈時:步數排行榜一目了然,誰最愛運動一看便知。

其實,數據可視化早已滲透到我們生活的方方面面。它能讓復雜的數據變得直觀、易懂,也能幫助我們發現數據背后的規律和故事。


2. 數據可視化的核心概念與發展

2.1 什么是數據可視化?

數據可視化,就是用圖形、圖表等視覺手段,把抽象的數據變成直觀的信息。它的本質是"讓數據說話",幫助我們更快、更準確地理解數據。

2.2 為什么要做可視化?

  • 直觀表達:一張圖能讓人秒懂數據全貌。
  • 發現規律:圖表能揭示數據中的趨勢、分布和異常。
  • 輔助決策:可視化結果常常是決策的依據。
  • 溝通交流:圖表是團隊、公眾溝通的"通用語言"。

2.3 可視化的歷史與發展

  • 18世紀:最早的統計圖表(如威廉·普萊費爾的條形圖、折線圖、餅圖)
  • 19世紀:南丁格爾玫瑰圖、約翰·斯諾霍亂地圖等推動了數據可視化在醫學、社會科學的應用
  • 20世紀:計算機普及,圖表類型和交互方式極大豐富
  • 21世紀:大數據、AI、交互式可視化(如Tableau、PowerBI、ECharts、D3.js)成為主流

3. 常見統計圖表類型與適用場景

圖表類型適用數據主要作用優點局限生活例子
條形圖分類/分組比較各類別數量直觀、易讀類別過多時擁擠各城市人口、不同菜品銷量
餅圖分類/比例顯示各部分占比形象、突出比例類別多時難分辨市場份額、預算分配
直方圖連續/分組展示分布形態反映分布、異常只適合數值型成績分布、身高分布
箱線圖數值型展示分布特征和異常值顯示中位數、離群值不顯示分布細節班級成績、工資分布
折線圖時間序列展示趨勢變化反映趨勢不適合離散類別股價走勢、氣溫變化
散點圖數值型展示變量關系發現相關性變量多時難讀身高與體重、收入與消費
熱力圖分組/矩陣展示分布密度直觀、對比強需二維分組城市與性別分布
密度圖數值型展示分布平滑曲線細膩、平滑受帶寬影響收入分布、消費分布
分組對比分類+數值多組對比直觀對比組數多時擁擠各城市步數對比
相關性熱力圖多變量展示變量間相關性一目了然只反映線性相關多指標分析

4. 實際案例與可視化代碼

這里我們用一組模擬數據,展示不同類型的可視化效果。

4.1 生成示例數據

import numpy as np
import pandas as pd
np.random.seed(42)
n = 300
data = {'性別': np.random.choice(['男', '女'], n, p=[0.52, 0.48]),'城市': np.random.choice(['北京', '上海', '廣州', '深圳', '杭州'], n),'年齡': np.random.normal(32, 8, n).round(1),'身高': np.random.normal(168, 8, n).round(1),'月收入': np.random.lognormal(9.2, 0.5, n).round(0),'步數': np.random.poisson(8000, n),'消費': np.random.gamma(2, 2000, n).round(0)
}
df = pd.DataFrame(data)
df['年齡'] = np.clip(df['年齡'], 18, 65)
df['身高'] = np.clip(df['身高'], 150, 190)

4.2 條形圖:不同城市樣本數量

import matplotlib.pyplot as plt
city_counts = df['城市'].value_counts()
plt.figure(figsize=(7,5))
city_counts.plot(kind='bar', color='skyblue')
plt.title('不同城市樣本數量')
plt.xlabel('城市')
plt.ylabel('人數')
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

條形圖

  • 條形圖適合比較各類別數量,直觀反映不同城市的樣本分布。

4.3 餅圖:性別比例

plt.figure(figsize=(4,4))
df['性別'].value_counts().plot(kind='pie', autopct='%1.1f%%', colors=['lightblue','lightpink'])
plt.title('性別比例')
plt.ylabel('')
plt.tight_layout()
plt.show()

餅圖

  • 餅圖突出比例關系,適合展示性別、市場份額等占比。

4.4 直方圖:年齡分布

plt.figure(figsize=(7,5))
plt.hist(df['年齡'], bins=15, color='lightgreen', edgecolor='black')
plt.title('年齡分布直方圖')
plt.xlabel('年齡')
plt.ylabel('人數')
plt.tight_layout()
plt.show()

直方圖

  • 直方圖反映年齡的分布形態,是否偏態、集中或分散。

4.5 箱線圖:身高分布

import seaborn as sns
plt.figure(figsize=(6,5))
sns.boxplot(y=df['身高'], color='gold')
plt.title('身高分布箱線圖')
plt.ylabel('身高 (cm)')
plt.tight_layout()
plt.show()

箱線圖

  • 箱線圖揭示身高的中位數、四分位數和異常值。

4.6 折線圖:某城市月收入趨勢

months = np.arange(1,13)
city_income = np.random.normal(12000, 2000, 12)
plt.figure(figsize=(7,5))
plt.plot(months, city_income, marker='o', color='orange')
plt.title('某城市月收入趨勢')
plt.xlabel('月份')
plt.ylabel('月收入 (元)')
plt.xticks(months)
plt.tight_layout()
plt.show()

折線圖

  • 折線圖適合展示時間序列數據的趨勢變化。

4.7 散點圖:身高與月收入的關系

plt.figure(figsize=(7,5))
plt.scatter(df['身高'], df['月收入'], alpha=0.6, color='purple')
plt.title('身高與月收入的關系')
plt.xlabel('身高 (cm)')
plt.ylabel('月收入 (元)')
plt.tight_layout()
plt.show()

散點圖

  • 散點圖揭示變量間的相關性和分布特征。

4.8 熱力圖:不同城市與性別的樣本分布

pivot = pd.crosstab(df['城市'], df['性別'])
plt.figure(figsize=(6,5))
sns.heatmap(pivot, annot=True, cmap='YlGnBu', fmt='d')
plt.title('不同城市與性別的樣本分布熱力圖')
plt.tight_layout()
plt.show()

熱力圖

  • 熱力圖適合展示二維分組數據的分布密度。

4.9 密度圖:消費分布

plt.figure(figsize=(7,5))
sns.kdeplot(df['消費'], fill=True, color='teal')
plt.title('消費分布密度圖')
plt.xlabel('消費 (元)')
plt.tight_layout()
plt.show()

密度圖

  • 密度圖平滑展示消費數據的分布形態。

4.10 分組對比箱線圖:不同城市步數分布

plt.figure(figsize=(8,6))
sns.boxplot(x='城市', y='步數', data=df)
plt.title('不同城市步數分布箱線圖')
plt.xlabel('城市')
plt.ylabel('步數')
plt.tight_layout()
plt.show()

分組箱線圖

  • 分組箱線圖適合多組數值型數據的對比。

4.11 相關性熱力圖:數值變量相關性

corr = df[['年齡','身高','月收入','步數','消費']].corr()
plt.figure(figsize=(7,6))
sns.heatmap(corr, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('數值變量相關性熱力圖')
plt.tight_layout()
plt.show()

相關性熱力圖

  • 相關性熱力圖一目了然地展示多變量間的線性相關關系。

5. 別被這些誤區騙了

? 誤區1:圖越花哨越好

真相:可視化的核心是清晰表達,過度裝飾反而干擾理解。

? 誤區2:圖表越多越好

真相:圖表不是越多越好,關鍵是選對、用好。過多的圖表反而會分散重點,甚至造成信息干擾。

? 誤區3:只看圖不看數據

真相:圖表是輔助理解,關鍵還是要結合數據本身。

? 誤區4:圖表類型隨意選

真相:不同數據類型、分析目的需選用合適的圖表。


6. 實際應用建議

  • 選對圖表類型,別"亂燉"。
  • 圖表要有標題、坐標軸、單位,必要時加注釋。
  • 顏色搭配要協調,避免過度花哨。
  • 關注數據分布和異常值,別只看均值。
  • 代碼可復用,建議封裝常用繪圖函數。
  • 結合交互式可視化工具(如Tableau、PowerBI、ECharts、Plotly等)提升分析效率。

7. 練習一下

基礎題

  1. 哪些場景適合用條形圖?哪些適合用折線圖?
  2. 餅圖和條形圖的區別是什么?
  3. 箱線圖能揭示哪些信息?
  4. 熱力圖和相關性熱力圖的區別?

思考題

  1. 你在生活中見過哪些有趣或誤導的數據可視化?
  2. 如果要展示某公司三年內各部門員工人數變化,應該用什么圖?為什么?
  3. 如何判斷散點圖中的變量是否存在線性相關?

動手題

  1. 用Python畫出你自己的步數、體重或消費數據的趨勢圖。
  2. 用模擬數據畫出身高與體重的散點圖,并嘗試解釋相關性。
  3. 試著用箱線圖和密度圖對比同一組數據的分布特征。

8. 重點回顧

  • 數據可視化讓數據"說話",是數據分析的重要環節。
  • 常見圖表有條形圖、餅圖、直方圖、箱線圖、折線圖、散點圖、熱力圖、密度圖、分組對比圖、相關性熱力圖等。
  • 選對圖表類型,表達更清晰。
  • 圖表要關注分布、趨勢、異常值。

9. 下期預告

下一篇我們將進入概率的世界,聊聊"概率基礎:不確定性的數學"。你將學到:

  • 概率的基本概念和計算方法
  • 生活中的概率現象
  • 概率與統計的關系
  • 常見概率誤區

概率是理解統計推斷的基石,敬請期待!


📚 參考資料

  • 吳喜之著《統計學:從數據到結論》,中國統計出版社
  • 盛驟等著《概率論與數理統計》,高等教育出版社
  • 作者個人學習和實踐經驗總結

寫在最后:如果你覺得這篇文章對你有幫助,歡迎點贊、收藏和分享!有任何問題或建議,歡迎在評論區留言交流,我會認真回復每一條評論。讓我們一起用統計學的眼光看世界,一起進步!📊

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85069.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85069.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85069.shtml

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

相關文章

1.1 Linux 編譯FFmpeg 4.4.1

一、安裝編譯工具 sudo apt install -y autoconf automake build-essential cmake git pkg-config nasm yasm libtool zlib1g-dev說明: autoconf:生成 configure 腳本,用于自動配置源碼。automake:與 autoconf 配合,…

【圖片識別改名】如何批量識別大量圖片的文字并重命名圖片,基于WPF和京東OCR識別接口的實現方案

應用場景 在企業文檔管理、數字圖書館、電商商品管理等場景中,經常需要處理大量圖片中的文字信息。例如: 電商平臺需要將商品圖片中的型號、規格等信息提取出來作為文件名圖書館需要將掃描的圖書頁面識別為文字并整理歸檔企業需要將紙質文檔電子化并按…

簡歷模板2——數據挖掘工程師5年經驗

姓名 / Your Name 數據挖掘工程師 | 5年經驗 | 推薦/風控/圖模型 📞 138-XXXX-XXXX | ?? your.emailexample.com | 🌐 github.com/yourname | 📍 北京 🎯 個人簡介 / Summary 5年大廠數據挖掘經驗,碩士學歷。擅長推…

CSS3 漸變效果

1. 引言 CSS3 漸變能夠在指定顏色之間創建平滑過渡效果。這種設計元素不僅能為網頁增添豐富的視覺層次,更是現代網頁設計的重要組成部分。CSS3 提供兩種主要的漸變類型:線性漸變(Linear Gradient) - 沿直線方向進行顏色過渡;徑向漸變(Radial…

A Survey on 3D Gaussian Splatting——3D高斯領域綜述

原文鏈接:[2401.03890] A Survey on 3D Gaussian Splatting 動態更新的GitHub倉庫(包含性能對比與最新文獻追蹤): https://github.com/guikunchen/3DGS-Benchmarks https://github.com/guikunchen/Awesome3DGS 摘要&#xff1…

計算機網絡 期末實訓 eNSP 校園網

eNSP 綜合實訓 小型校園網 計算機網絡期末實訓 01 搭建拓撲 1.設計任務 構建一個小型校園網絡,涵蓋以下設備與區域: 學生宿舍區:50臺計算機辦公樓區:30臺計算機(細分為財務部門、人事部門及其他科室)圖書館:10臺計算機教學樓:30臺計算機服務器集群:2臺服務器,分別用…

Smart Form Adobe form 強制更改內表:TNAPR

強制更改內表:TNAPR se16-> Smart Form總覽 Smart form 變量格式說明: &symbol& (括號中,小寫字母為變量) &symbol& 屏蔽從第一位開始的N位 &symbol (n)& 只顯示前N位 &symbol (S)& 忽略正負號 &symbol (<)& 符號在…

頁面配置文件pages.json和小程序配置

頁面配置文件pages.json和小程序配置 pages.jsonpagesstyle-navigationBarBackgroundColorstyle-navigationBarTitleTextstyle-navigationStylestyle-enablePullDownRefresh注意事項不同平臺區分配置新建頁面 globalStyletabBar代碼 manifest.json授權web配置代理 pages.json …

Linux網絡配置工具ifconfig與ip命令的全面對比

在Linux網絡管理中&#xff0c;ifconfig和 ip命令是最常用的兩個工具。隨著時間的推移&#xff0c;ip命令逐漸取代了 ifconfig&#xff0c;成為更強大和靈活的網絡配置工具。本文將對這兩個工具進行全面對比&#xff0c;幫助您理解它們的區別和各自的優勢。 一、ifconfig命令 …

STM32 實現解析自定義協議

一、環形隊列設計與實現&#xff08;核心緩沖機制&#xff09; 數據結構設計&#xff1a; #define BUFFER_SIZE 512 #define BUFFER_MASK (BUFFER_SIZE - 1) typedef struct {volatile uint8_t buffer[BUFFER_SIZE]; // 環形緩沖區&#xff08;大小可配置&#xff09;volati…

NGINX 四層上游模塊`ngx_stream_upstream_module` 實戰指南

一、模塊定位與引入 模塊名稱&#xff1a;ngx_stream_upstream_module 首次引入&#xff1a;NGINX 1.9.0&#xff08;2015-08-04&#xff09; 編譯選項&#xff1a;啟用 --with-stream&#xff08;含此模塊&#xff09; 作用&#xff1a; 定義后端服務器組&#xff08;upstr…

WinUI3入門2:DataGrid動態更新 添加刪除和修改字段

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的&#xff0c;可以在任何平臺上使用。 源碼指引&#xff1a;github源…

基于Python學習《Head First設計模式》第十三章 現實世界中的模式

定義設計模式 設計模式要素 模式名稱、分類意圖&#xff1a;描述模式是什么動機&#xff1a;描述什么時候使用這個模式&#xff0c;具體場景適用性&#xff1a;描述什么地方使用這個模式&#xff0c;用在什么場合結構&#xff1a;類圖參與者&#xff1a;類和對象的責任和角色…

線性代數(1)線性方程組的多種解法

求解線性方程組是線性代數的核心問題之一&#xff0c;根據方程組的類型&#xff08;如齊次/非齊次、方陣/非方陣、稀疏/稠密等&#xff09;&#xff0c;可以采用不同的解法。以下是常見的線性方程組解法分類及簡要說明&#xff1a; 一、直接解法&#xff08;精確解&#xff09…

肝臟/肝臟腫瘤圖像分割數據集(貓臉碼客第261期)

探秘肝臟/肝臟腫瘤圖像分割&#xff1a;醫學影像技術的新突破 一、引言 肝臟/肝臟腫瘤圖像分割在醫學領域占據著愈發重要的地位&#xff0c;為肝臟疾病的精準診斷與有效治療提供了關鍵技術支撐。隨著醫學成像技術的飛速進步&#xff0c;如磁共振成像&#xff08;MRI&#xff…

【LLM05---位置編碼】

文章目錄 位置編碼引出Transformer中位置編碼方法:Sinusoidal functions兩個重要性質位置編碼 最近在學習位置編碼,想找一個講的比較透徹的文章或視頻,找了半天,滿意的一個也沒有,所以自己記錄一下。 注意,本篇筆記只作為自己的學習記錄用,更好的講解的內容請看鏈接:位…

pikachu——ssrf

概念補充&#xff1a; 內網&#xff1a;局部范圍內的私有網絡&#xff0c;比如局域網就是一個小范圍的內網&#xff0c;有私有IP&#xff0c;并且內網受防火墻的保護&#xff0c;外網無法直接訪問 外網&#xff1a;全球范圍的公共網絡&#xff0c;公有ip ip地址&#xff1a;…

java 設計模式_行為型_13備忘錄模式

13.備忘錄模式 模式定義 備忘錄模式&#xff08;Memento Pattern&#xff09;模式的定義&#xff1a;在不破壞封裝性的前提下&#xff0c;捕獲一個對象的內部狀態&#xff0c;并在該對象之外保存這個狀態&#xff0c;以便以后當需要時能將該對象恢復到原先保存的狀態。該模式又…

創建postgres數據庫失敗

異常&#xff1a; postgres# CREATE DATABASE deepflow_agent2; ERROR: source database "template1" is being accessed by other users DETAIL: There are 2 other sessions using the database 如何斷聯這兩個session 要解決 PostgreSQL 中因 template1 數據庫…

臥安機器人闖上市:深耕AI具身技術,“大疆教父”李澤湘再落子

撰稿|行星 來源|貝多財經 又一家機器人企業&#xff0c;現身港股資本市場。貝多財經了解到&#xff0c;臥安機器人&#xff08;深圳&#xff09;股份有限公司&#xff08;下稱“臥安機器人”&#xff09;于6月8日向港交所提交了上市申請&#xff0c;國泰君安國際、華泰國際為…