<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文介紹基於Python中seaborn
模組,實現聯合分佈圖繪製的方法。
聯合分佈(Joint Distribution)圖是一種檢視兩個或兩個以上變數之間兩兩相互關係的視覺化圖,在資料分析操作中經常需要用到。一幅好看的聯合分佈圖可以使得我們的資料分析更加具有可視性,讓大家眼前一亮。
那麼,本文就將用seaborn
來實現聯合分佈圖的繪製。seaborn
是一個基於matplotlib
的Python資料視覺化模組,藉助於其,我們可以通過較為簡單的操作,繪製出各類動人的圖片。
首先,引入需要的模組。
import pandas as pd import seaborn as sns
接下來,將儲存有我們需要繪製聯合分佈圖資料的檔案匯入。因為我是將資料儲存於.csv
檔案,所以我這裡用pd.read_csv
來實現資料的匯入。我的資料在.csv
檔案中長如下圖的樣子,其中共有107
行,包括106
行樣本加1
行列標題;以及10
列。我們就看前幾行即可:
匯入資料的程式碼如下:
data_path="G:/black_carbon_paper/97_BC20201230/00_Original/AllData5Factor.csv" column_names=['FID','ID','X','Y','BC','Temp','Slope','RoDen','POI','GAIA'] my_data=pd.read_csv(data_path,names=column_names,header=0)
其中,data_path
是.csv
檔案儲存位置與檔名,column_names
是匯入的資料在Python中我希望其顯示的名字(為什麼原始資料本來就有列標題但還要再設定這個column_names
,本文下方有介紹);header=0
表示.csv
檔案中的0
行(也就是我們一般而言的第一行)是列標題;如果大家的初始資料沒有列標題,即其中的第一行就是資料自身,那麼就需要設定header=None
。
執行上述程式碼,我們將匯入的資料列印,看看在Python中其長什麼樣子。
print(my_data)
可以看到,匯入Python後資料的第7
列,原本叫做Slope_1
,但是設定我們自己命名的column_names
後,其就將原本資料的列標題改為我們自己設定的標題Slope
了。如果我們不設定column_names
,匯入的資料就是這個樣子:
可以看到,我們不用column_names
的話,資料匯入Python後列名就是原始的Slope_1
。
我們繼續。其實用seaborn
繪製聯合分佈圖非常簡單(這就是seaborn
對matplotlib
改進,讓我們繪製複雜的圖時候不需要太麻煩),僅僅只有一下兩句程式碼:
joint_columns=['BC','Temp','Slope','RoDen','POI','GAIA'] sns.pairplot(my_data[joint_columns],kind='reg',diag_kind='kde')
其中,第一句是定義我們想要參與繪製聯合分佈圖的列,將需要繪圖的列標題放入joint_column
。可以看到,因為我的資料中,具有ID
這種編號列,而肯定編號是不需要參與繪圖的,那麼我們就不將其放入joint_column
即可。
第二句就是繪圖。kind
表示聯合分佈圖中非對角線圖的型別,可選'reg'
與'scatter'
、'kde'
、'hist'
,'reg'
代表在圖片中加入一條擬合直線,'scatter'
就是不加入這條直線,'kde'
是等高線的形式,'hist'
就是類似於柵格地圖的形式;diag_kind
表示聯合分佈圖中對角線圖的型別,可選'hist'
與'kde'
,'hist'
代表直方圖,'kde'
代表直方圖曲線化。
以kind
和diag_kind
分別選擇'reg'
和'kde'
為例,繪圖結果如下:
以kind
和diag_kind
分別選擇'scatter'
和'hist'
為例,繪圖結果如下:
個人感覺第一幅圖好看些~
不過,由於參與繪圖的變數個數比較多,因此使得圖中的字型有點看不清。可以加上一句程式碼在sns.pairplot
這句程式碼的上面:
sns.set(font_scale=1.2)
其中,font_scale
就是字型的大小,後面的數位越大,字型就越大。以font_scale=1.2
為例,讓我們看看效果:
這樣子字型就大了~
到此這篇關於Python+seaborn實現聯合分佈圖的繪製的文章就介紹到這了,更多相關Python seaborn聯合分佈圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45