seaborn單變量/雙變量/多變量繪圖

首先導入庫:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

這裏的series表示用圖形表示的單變量,dataframe表示需要用圖形表示的多變量

如果漢字顯示方格,解決方法是導入字體:

from matplotlib.font_manager import FontProperties
sns.set(font=FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14).get_name())

#以下內容轉載自:https://www.cnblogs.com/jianchiai/p/11373805.html
#Matplotlib中文問題
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解決中文顯示問題-設置字體爲黑體
plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題

#Seaborn中文問題
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字體設置-黑體
plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題
sns.set(font='SimHei') # 解決Seaborn中文顯示問題

保存圖片:

pig = sns.distplot(x,kde=True)
fig = pig.get_figure()
fig.savefig('保存圖像.png')

目錄

1 單變量

1.1 直方圖

2 雙變量

2.1 散點圖 

2.2 散點圖+迴歸分析

2.3 strip散點圖(適合某一變量的取值有限)

2.4 盒圖

2.5 小提琴圖

3 多變量

3.1 單變量直方圖 + 雙變量散點圖

3.2 盒圖

3.3 小提琴圖

參考


 

1 單變量

1.1 直方圖

sns.distplot(x,kde=True)

可選參數:

kde:核密度曲線

bins :將x的取值區間等分爲bins份,然後繪製直方圖

fit:在原圖上繪製一條當前數據的統計指標

2 雙變量

2.1 散點圖 

sns.jointplot(x=dataframe.x,y=dataframe.y)

可選參數:

kind=‘hex':蜂窩狀圖,通過顏色深淺表示密度

kind='kde':環形圖,通過顏色深淺表示密度

2.2 散點圖+迴歸分析

sns.regplot(x=dataframe.x,y=dataframe.y)

可選參數:

x_jitter:當有一個變量是使用ONE-HOT編碼的時候,散點圖會是多條線,這個參數可以設置散點抖動,看上去更美觀。不過這樣的圖推薦2.3

2.3 strip散點圖(適合某一變量的取值有限)

sns.stripplot(x=dataframe.x , y=dataframe.y)

可選參數:

jitter:是否需要值偏移一點,如果jitter=False,那麼繪製出來的會在一條線上

2.4 盒圖

sns.boxplot(x=dataframe.x,y=dataframe.y)

2.5 小提琴圖

sns.violinplot(x=dataframe.total_bill,y=dataframe.day)

 

3 多變量

3.1 單變量直方圖 + 雙變量散點圖

sns.pairplot(dataframe)

如果dataframe只有兩個變量,圖像是:

如果dataframe有多個變量,圖像是:

對角線上顯示的是每個單獨變量的直方圖,其他位置是兩兩變量的散點圖。

3.2 盒圖

sns.boxplot(x=dataframe.day,y=dataframe.total_bill,hue=dataframe.sex)

3.3 小提琴圖

sns.violinplot(x=dataframe.total_bill,y=dataframe.day,hue=dataframe.time)

第三個維度也可以並不是簡單的排列出來,而是分別展示在小提琴圖的兩邊,所以還有第二種方法:

sns.violinplot(x=dataframe.total_bill,y=dataframe.day,hue=dataframe.time,split=True)

 

參考

 

Seaborn樣例網址:https://seaborn.pydata.org/examples/index.html

Seaborn教程:https://zhuanlan.zhihu.com/p/40303932

seaborn教程 (2,繪圖功能):https://zhuanlan.zhihu.com/p/33290588

python seaborn畫圖:https://blog.csdn.net/suzyu12345/article/details/69029106

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章