亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python+seaborn實現聯合分布圖的繪制

 更新時間:2023年02月17日 14:51:14   作者:瘋狂學習GIS  
聯合分布(Joint Distribution)圖是一種查看兩個或兩個以上變量之間兩兩相互關系的可視化圖,在數據分析操作中經常需要用到。本文將通過seaborn實現繪制聯合分布圖,需要的可以參考一下

本文介紹基于Pythonseaborn模塊,實現聯合分布圖繪制的方法。

聯合分布Joint Distribution)圖是一種查看兩個或兩個以上變量之間兩兩相互關系的可視化圖,在數據分析操作中經常需要用到。一幅好看的聯合分布圖可以使得我們的數據分析更加具有可視性,讓大家眼前一亮。

那么,本文就將用seaborn來實現聯合分布圖的繪制。seaborn是一個基于matplotlibPython數據可視化模塊,借助于其,我們可以通過較為簡單的操作,繪制出各類動人的圖片。

首先,引入需要的模塊。

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。

執(zhí)行上述代碼,我們將導入的數據打印,看看在Python中其長什么樣子。

print(my_data)

可以看到,導入Python后數據的第7列,原本叫做Slope_1,但是設置我們自己命名的column_names后,其就將原本數據的列標題改為我們自己設定的標題Slope了。如果我們不設置column_names,導入的數據就是這個樣子:

可以看到,我們不用column_names的話,數據導入Python后列名就是原始的Slope_1。

我們繼續(xù)。其實用seaborn繪制聯合分布圖非常簡單(這就是seabornmatplotlib改進,讓我們繪制復雜的圖時候不需要太麻煩),僅僅只有一下兩句代碼:

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'代表直方圖曲線化。

kinddiag_kind分別選擇'reg''kde'為例,繪圖結果如下:

kinddiag_kind分別選擇'scatter''hist'為例,繪圖結果如下:

個人感覺第一幅圖好看些~

不過,由于參與繪圖的變量個數比較多,因此使得圖中的字體有點看不清??梢约由弦痪浯a在sns.pairplot這句代碼的上面:

sns.set(font_scale=1.2)

其中,font_scale就是字體的大小,后面的數字越大,字體就越大。以font_scale=1.2為例,讓我們看看效果:

這樣子字體就大了~

到此這篇關于Python+seaborn實現聯合分布圖的繪制的文章就介紹到這了,更多相關Python seaborn聯合分布圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論