大資料視覺化技術第五章
關係資料視覺化
分析資料時,也可以從整體進行觀察,或者關注資料的分布。資料間是否存在重疊或者是否毫不相干?還可以更寬泛的角度觀察各個分布資料的相關關係。其實最重要的一點,就是資料在進行視覺化處理後,呈現在讀者眼前的圖表所表達的意義是什麼。
關係資料具有關聯性和分布性,下面我們將通過具體例項來了解關係資料的視覺化分析,以及如何觀察資料間的相關關係。
資料的關聯性,其核心就是指量化的兩個資料間的數理關係。關聯性強,是指當乙個數值增長時,另乙個數值也會隨之發生變化。相反地,關聯性弱,就是指乙個數值增長時,另乙個數值幾乎沒有發生變化。
資料的關聯性主要有正相關、負相關和不相關關係。下面我們用散點圖來研究資料的關聯性。
散點圖
散點圖中顯示關聯性
散點圖可以有效地展示兩個變數間的相關關係,剛剛我們已經說了,變數之間的基本關係就包括正相關、負相關或不相關關係。所謂的正相關表現在散點圖中,就是從左往右讀取圖表,點的位置越來越高,也就是說,兩個變數變動方向相同,乙個變數由大到小或由小到大變化時,另乙個變數亦由大到小或由小到大變化。比如,身高與體重,身高越長,體重就越重。反之,負相關就是點的位置越來越低,也就說,兩個變數的變化方向相反,也可理解成事態發展的對立關係。通俗地講,就是兩個變數,其中乙個變大時,另乙個就變小;乙個變小時,另乙個就變大。比如,高原含氧量與海拔高度。亞洲地區天亮太陽公升起,美洲地區天黑太陽下降,兩洲之間時差變化相反,氣候成對立關係。而不相關就是點的排列錯亂無序。這三種關係在散點圖中的大致表現如上圖所示,下面我們結合python**例項,來研究散點圖的具體實現方法。
ggplot和pandas簡介
python的常用視覺化包是matplotlib, ggplot基於該包的二次開發的包,也是python用來做資料視覺化的第三方包。ggplot讀取的資料格式為pandas的dataframe,ggplot主要主要繪圖思想為圖層疊加思維。
python的常用視覺化包是matplotlib, 而ggplot基於該包的二次開發的包,也是python用來做資料視覺化的第三方包。ggplot讀取的資料格式為pandas的dataframe,ggplot主要主要繪圖思想為圖層疊加思維。ggplot最早在r語言中實現,後面ggplot也來到了python平台,我們可以使用ggplot來繪製折線圖、散點圖、散點矩陣圖、柱狀圖等基本圖表。
pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。
基於python的散點圖實現
import ggplot as gp
import pandas as pd
crime = pd.read_csv("crimeratesbystate2005.csv")
plot = gp.ggplot(gp.aes(x='murder', y='burglary'), data=crime)
points = gp.geom_point(color='red』)
print(plot + points)
散點矩陣圖
散點矩陣圖也叫散點圖矩陣,它允許同時看到多個單獨變數的分布和它們兩兩之間的關係,是多個散點圖的有機結合,其基本框架如圖所示。允許同時看到多個單獨變數的分布和它們兩兩之間的關係,散點圖矩陣通常是方格網布局。在這個方格網中,水平和垂直的方向上都有多個變數,可滿足多個變數比較的需求。其中水平軸每一行和垂直軸上每一列都代表乙個變數,左上角到右下角的對角線空出來可以加入密度曲線或直方圖。下面我們將介紹如何使用seaborn視覺化庫在python中實現散點圖矩陣,我們將看到如何為快速檢查資料而建立預設散點圖矩陣,以及如何為了更深入的分析定製視覺化方案。
seaborn
seaborn是基於matplotlib的圖形視覺化python包。它提供了一種高度互動式介面,便於使用者能夠做出各種有吸引力的統計圖表。
seaborn是在matplotlib的基礎上進行了更高階的api封裝,從而使得作圖更加容易,在大多數情況下使用seaborn能做出很具有吸引力的圖,而使用matplotlib就能製作具有更多特色的圖。應該把seaborn視為matplotlib的補充,而不是替代物。同時它能高度相容numpy與pandas資料結構。
matplotlib試著讓簡單的事情更加簡單,困難的事情變得可能,那麼seaborn就是讓困難的東西更加簡單。—— michael waskom
基於python的散點矩陣圖實現
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
crime = pd.read_csv("../data/crimeratesbystate2005.csv")
crime = crime[crime.state != "united states"]
crime = crime[crime.state != "district of columbia"]
crime = crime.drop(['state'], axis=1)
crime = crime.drop(['population'], axis=1)
g = sns.pairplot(crime, diag_kind="kde", kind="reg")
plt.show()
第五章 呈現資料
在指令碼中重定向輸出 建立自己的重定向 列出開啟的檔案描述符 阻止命令輸出 建立臨時檔案 兩種顯示指令碼輸出的方法 linux系統將每個物件當做檔案處理。這裡包括輸入和輸出程序。linux用檔案描述符 file descriptor 來標識每個物件。檔案描述符是乙個非負整數,可以唯一標識會話中開啟的...
python第五章 Python學習(第五章)
記錄所有的名片字典 card list defshow menu 顯示資訊 print 50 print 歡迎使用 名片管理系統 v1.0 print print 1.新增名片 print 2.顯示全部 print 3.搜尋名片 print print 0.退出系統 print 50 defnew ...
大資料視覺化(五)關係資料視覺化
關係資料具有關聯性與分布性 兩個量化資料之間的數理關係 通過資料關聯性可已根據乙個已知的數值變化來 另乙個數值的變化。正相關 負相關 不相關 散點圖 crime pd.read csv data crimeratesbystate2005.csv scatter add xaxis crime mu...