seaborn分類數據可視:散點圖|箱型圖|小提琴圖|lv圖|柱狀圖|折線圖

一、散點圖stripplot( ) 與swarmplot()

1.分類散點圖stripplot( )?

用法stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,jitter=True, dodge=False, orient=None,

      ? color=None, palette=None,size=5, edgecolor="gray", linewidth=0, ax=None, **kwargs)

  • x,y 分類字段和分布統計字段
  • hue 在x分類的基礎上進行二次分類的字段
  • data 源數據
  • order 圖表中顯示的分類
  • jitter?當點數據重合較多時用該參數做一些調整,可以設置為True或者間距0.1,否則會有重合的點
  • dodge 如果有二次分類,二次分類是否拆分顯示
tips = sns.load_dataset("tips") #導入系統數據
print(tips.head())
print(tips['day'].value_counts())
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4
Sat     87
Sun     76
Thur    62
Fri     19
Name: day, dtype: int64
輸出結果

?

fig = plt.figure(figsize=(15,10))
ax1 = plt.subplot(221)
# 對data數據按day分類,統計total_bill的分布,如果點重合較多適當顯示開
sns.stripplot(x="day", y="total_bill",  data=tips, jitter = True, size = 5, edgecolor = 'w',linewidth=1, marker = 'o', ax=ax1)ax2 = plt.subplot(222)
# 對data數據按day分類,統計total_bill的分布,并且圖表中只顯示按day分類的中的Sat和Sun
sns.stripplot(x="day", y="total_bill", data=tips,jitter = True, order = ['Sat','Sun'],ax=ax2) ax3 = plt.subplot(223)
# 對data數據按sex分類后再按day分類,統計total_bill的分布
sns.stripplot(x="sex", y="total_bill", hue="day",data=tips, jitter=True,ax = ax3)ax4 = plt.subplot(224)
# 對data數據按sex分類后再按day分類,統計total_bill的分布,并且不同的day拆分顯示
sns.stripplot(x="sex", y="total_bill", hue="day",data=tips, jitter=True,palette="Set2",dodge=True,ax=ax4) 

2.分簇散點圖swarmplot()

用法swarmplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,dodge=False, orient=None, color=None,

? ? ? ? ? ? ? ? ? ? ? palette=None,size=5, edgecolor="gray", linewidth=0, ax=None, **kwargs)

swarmplot()除了沒有jitter參數,其他用法類似stripplot()。

fig = plt.figure(figsize=(20,5))
ax1 = plt.subplot(141)
# 對data數據按day分類,統計total_bill的分布,如果點重合較多適當顯示開
sns.swarmplot(x="day", y="total_bill",  data=tips,  size = 5, edgecolor = 'w',linewidth=1, marker = 'o', ax=ax1)ax2 = plt.subplot(142)
# 對data數據按day分類,統計total_bill的分布,并且圖表中只顯示按day分類的中的Sat和Sun
sns.swarmplot(x="day", y="total_bill", data=tips, order = ['Sat','Sun'],ax=ax2) ax3 = plt.subplot(143)
# 對data數據按sex分類后再按day分類,統計total_bill的分布
sns.swarmplot(x="sex", y="total_bill", hue="day",data=tips, ax = ax3)ax4 = plt.subplot(144)
# 對data數據按sex分類后再按day分類,統計total_bill的分布,并且不同的day拆分顯示
sns.swarmplot(x="sex", y="total_bill", hue="day",data=tips, palette="Set2",dodge=True,ax=ax4) 

二、箱型圖boxplot()

boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,orient=None, color=None, palette=None,

? ? ? ? ? ? ?saturation=.75,width=.8, dodge=True, fliersize=5, linewidth=None,whis=1.5, notch=False, ax=None, **kwargs)

  • x,y 分類字段和分布統計字段
  • hue 在x分類的基礎上進行二次分類的字段
  • data 源數據
  • order 圖表中顯示的分類
  • dodge 如果有二次分類,二次分類是否拆分顯示
  • width 箱的間隔的比例,值越大間隔越小
  • filtersize? 異常點大小
  • whis 設置IQR
  • notch 是否以中值做凹槽
fig = plt.figure(figsize=(12,5))ax1 = plt.subplot(121)
sns.boxplot(x="day", y="total_bill", data=tips,linewidth = 2, width = 0.8, fliersize = 10, palette = 'hls', whis = 1.5, notch = True )
sns.swarmplot(x="day", y="total_bill", data=tips,color ='g',size = 3,alpha = 0.8)  #在箱型圖上做分簇散點圖

ax2 = plt.subplot(122)
sns.boxplot(x="day", y="total_bill", data=tips, hue = 'smoker', order = ['Sat','Sun'],palette = 'Reds') #根據day分類,再根據smkker分類

三、小提琴圖violinplot()

violinplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,bw="scott", cut=2,

? ? ? ? ? ? ? ?scale="area", scale_hue=True,?gridsize=100, width=.8,?inner="box", split=False, dodge=True,

? ? ? ? ? ? ? ?orient=None,linewidth=None, color=None, palette=None,?saturation=.75,ax=None, **kwargs)

  • x,y 分類字段和分布統計字段
  • hue 在x分類的基礎上進行二次分類的字段
  • data 源數據
  • order 圖表中顯示的分類
  • dodge 如果有二次分類,二次分類的多個小提琴位置是否錯開,默認為True,False則多個小提琴會重復? (dodge=True與split=False效果相同)
  • split?如果有二次分類,二次分類是否拆分整個提琴,默認為False顯示為多個獨立的小提琴,True則顯示為一個小提琴,左右兩側表示二次分類
  • scale = 'area' 設置小提琴圖的寬度,area-保持小提琴面積相同,count-按照樣本數量決定寬度,width-寬度一樣
  • gridsize = 100 設置小提琴圖邊線的平滑度,越高越平滑
  • inner = 'box' 設置內部顯示類型 → “box”箱型圖, “quartile”分位數, “point”點, “stick”, None
  • bw = 0.8 # 控制擬合程度,'scott'、'silverman'或者一個浮點數,一般可以不設置
fig = plt.figure(figsize=(20,5))ax1 = plt.subplot(141)
sns.violinplot(x="day",y="total_bill",data=tips,linewidth=2,width=0.8,palette='hls',scale= 'area',gridsize=50,inner='box')  ax2 = plt.subplot(142)
sns.violinplot(x="day",y="total_bill",data=tips,hue = 'smoker',palette="muted",dodge=False,inner="point")#二次分類小提琴位置不錯開

ax3 = plt.subplot(143)
sns.violinplot(x="day",y="total_bill",data=tips,hue = 'smoker',palette="muted",split=False,inner="stick")#二次分類不拆分小提琴,顯示為多個獨立小提琴

ax4 = plt.subplot(144)
sns.violinplot(x="day",y="total_bill",data=tips,hue = 'smoker',palette="muted",split=True,inner="quartile")#二次分類拆分小提琴,左右兩側分別表示二次

小提琴圖與分簇散點圖結合sns.violinplot()+ sns.swarmplot()

sns.violinplot(x="day", y="total_bill", data=tips, palette = 'hls',alpha=0.5, inner = None)
sns.swarmplot(x="day", y="total_bill", data=tips, color="w")

四、增強箱圖boxenplot()

boxenplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,orient=None, color=None,

? ? ? ? ? ? ? ? palette=None, saturation=.75,width=.8,dodge=True, k_depth='proportion', linewidth=None,

? ? ? ? ? ? ? ? scale='exponential', outlier_prop=None, ax=None, **kwargs)

(lv圖表使用boxenplot(),lvplot()即將被遺棄)

  • x,y 分類字段和分布統計字段
  • hue 在x分類的基礎上進行二次分類的字段
  • data 源數據
  • order 圖表中顯示的分類
  • dodge 如果有二次分類,二次分類的多個小提琴位置是否錯開,默認為True,False則多個小提琴會重復? (dodge=True與split=False效果相同)
  • scale = 'area' 設置lv圖的寬度,“linear”、“exonential”、“area”? ?(一般scale和k_depth保持默認就好)
  • k_depth = 'proportion', # 設置框的數量 → “proportion”、“tukey”、“trustworthy”
  • width 箱之間間隔
sns.lvplot(x="day", y="total_bill", data=tips, palette="mako", width = 0.8, scale = 'area',k_depth = 'proportion')
sns.swarmplot(x="day", y="total_bill", data=tips, color ='k',size = 5)

五、柱狀圖barplot()?

seaborn中的柱狀圖不是單純的表示數量,而是表示了一個統計標準和對應的置信區間。

barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,estimator=np.mean, ci=95,?
? ? ? ? ? ?n_boot=1000, units=None,orient=None, color=None, palette=None, saturation=.75,errcolor=".26",?
? ? ? ? ? ?errwidth=None, capsize=None, dodge=True,ax=None, **kwargs)

  • x,y 分類字段和分布統計字段
  • hue 在x分類的基礎上進行二次分類的字段
  • data 源數據
  • order 圖表中顯示的分類
  • estimater 柱狀圖表示的統計量,默認和常使用均值
  • ci 置信區間的誤差,0-100之內、或sd標準差,或None,默認為95
  • saturation 顏色飽和度
  • errcolor與errwidth 誤差線顏色與寬度
  • capsize 誤差線延長寬度
  • dodge 如果有二次分類,二次分類的多個多個柱狀圖位置是否錯開
  • edgecolor 柱子的邊框顏色
#導入泰坦尼克號、小費和汽車事故的3個表的數據結構,在不同窗口顯示前5行
titanic = sns.load_dataset("titanic")
titanic.head()
tips = sns.load_dataset('tips') #
tips.head()
crashes = sns.load_dataset("car_crashes")#
crashes.head()

?

???? ?

?

fig = plt.figure(figsize=(15,4))
ax1 = plt.subplot(131)  #泰坦尼克,在性別分類的基礎上再按艙級別分類,統計生還率
sns.barplot(x="sex",y="survived",hue="class",data=titanic,palette = 'hls',capsize = 0.05,saturation=.8,errcolor = 'gray',errwidth = 2,ci = 'sd')
ax2 = plt.subplot(132)  #小費,在日期分類的基礎上再按性別分類,統計給的小費,置信區間的誤差為標準差
sns.barplot(x="day", y="total_bill", hue="sex", data=tips,edgecolor = 'white',errcolor='gray',capsize=0.1,ci='sd')
ax3 = plt.subplot(133)  #小費,同上,置信區間的誤差為默認的95
sns.barplot(x="day", y="total_bill", hue="sex", data=tips,edgecolor = 'white',errcolor='gray',capsize=0.1)

crashes = sns.load_dataset("car_crashes").sort_values("total", ascending=False)
f,ax = plt.subplots(figsize=(8, 20))# 創建圖表

sns.set_color_codes("pastel")
sns.barplot(x="total", y="abbrev", data=crashes,label="Total", color='b',edgecolor = 'w')# 設置第一個柱狀圖
sns.set_color_codes("muted")
sns.barplot(x="alcohol", y="abbrev", data=crashes, label="Alcohol-involved",color='b',edgecolor = 'w')# 設置第二個柱狀圖

ax.legend(ncol=2, loc="lower right")
sns.despine(left=True, bottom=True)

六、計數柱狀圖countplot()?

countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,orient=None, color=None,
? ? ? ? ? ? ? ? palette=None, saturation=.75,dodge=True, ax=None, **kwargs)

  • x,y 同時表示分類字段和顯示方向,即在x軸上或在y軸上對指定的字段進行計數顯示
  • hue 在x分類或者y分類的基礎上進行二次分類的字段
  • data 源數據
  • order 圖表中顯示的分類
  • dodge 如果有二次分類,二次分類的多個多個柱狀圖位置是否錯開
  • edgecolor 柱子的邊框顏色
fig = plt.figure(figsize=(12,4))
ax1 = plt.subplot(121)
sns.countplot(x="day", hue="sex", data=tips, palette = 'muted') #豎直顯示,在日期分類的基礎上再按性別分類
ax2 = plt.subplot(122)
sns.countplot(y="day", hue="sex", data=tips, palette = 'muted') #水平顯示

七、折線圖pointbar()

折線圖pointbar()和barplot()的用法類似,只是barplot()用柱狀圖表示均值,而pointbar()用一個點表示了均值。

pointplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,estimator=np.mean, ci=95,
? ? ? ? ? ? ? n_boot=1000, units=None,markers="o", linestyles="-", dodge=False, join=True, scale=1,
? ? ? ? ? ? ? orient=None, color=None, palette=None, errwidth=None,capsize=None, ax=None, **kwargs)

  • x,y 分類字段和分布統計字段
  • hue 在x分類的基礎上進行二次分類的字段
  • data 源數據
  • order 圖表中顯示的分類
  • estimater 柱狀圖表示的統計量,默認和常使用均值
  • ci 置信區間的誤差,0-100之內、或sd標準差,或None,默認為95
  • marker 均值的表示形式
  • errwidth 誤差線顏色與寬度
  • capsize 誤差線延長寬度
  • dodge 如果有二次分類,二次分類的多個線是否分開
  • joint 是否連線
sns.pointplot(x="day",y="total_bill",hue = 'sex',data=tips,palette = 'hls',dodge = True,join = True,markers=["o", "x"],linestyles=["-", "--"])
tips.groupby(['day','sex']).mean()['total_bill']

?

轉載于:https://www.cnblogs.com/Forever77/p/11405915.html

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

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

相關文章

數據圖表可視化_數據可視化十大最有用的圖表

數據圖表可視化分析師每天使用的最佳數據可視化圖表列表。 (List of best data visualization charts that Analysts use on a daily basis.) Presenting information or data in a visual format is one of the most effective ways. Researchers have proved that the human …

javascript實現自動添加文本框功能

轉自:http://www.cnblogs.com/damonlan/archive/2011/08/03/2126046.html 昨天,我們公司的網絡小組決定為公司做一個內部的網站,主要是為員工比如發布公告啊、填寫相應信息、投訴、問題等等需求。我那同事給了我以下需求: 1.點擊一…

從Mysql slave system lock延遲說開去

本文主要分析 sql thread中system lock出現的原因,但是筆者并明沒有系統的學習過master-slave的代碼,這也是2018年的一個目標,2018年我都排滿了,悲劇。所以如果有錯誤請指出,也作為一個筆記用于后期學習。同時也給出筆…

傳智播客全棧_播客:從家庭學生到自學成才的全棧開發人員

傳智播客全棧In this weeks episode of the freeCodeCamp podcast, Abbey chats with Madison Kanna, a full-stack developer who works remotely for Mediavine. Madison describes how homeschooling affected her future learning style, how she tackles imposter syndrom…

leetcode 82. 刪除排序鏈表中的重復元素 II(map)

解題思路 map記錄數字出現的次數,出現次數大于1的數字從鏈表中移除 代碼 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(…

python 列表、字典多排序問題

版權聲明:本文為博主原創文章,遵循 CC 4.0 by-sa 版權協議,轉載請附上原文出處鏈接和本聲明。本文鏈接:https://blog.csdn.net/justin051/article/details/84289189Python使用sorted函數來排序: l [2,1,3,5,7,3]print…

接facebook廣告_Facebook廣告分析

接facebook廣告Is our company’s Facebook advertising even worth the effort?我們公司的Facebook廣告是否值得努力? 題: (QUESTION:) A company would like to know if their advertising is effective. Before you start, yes…. Facebook does ha…

如何創建自定義進度欄

Originally published on www.florin-pop.com最初發布在www.florin-pop.com The theme for week #14 of the Weekly Coding Challenge is: 每周編碼挑戰第14周的主題是: 進度條 (Progress Bar) A progress bar is used to show how far a user action is still in…

基于SpringBoot的CodeGenerator

title: 基于SpringBoot的CodeGenerator tags: SpringBootMybatis生成器PageHelper categories: springboot date: 2017-11-21 15:13:33背景 目前組織上對于一個基礎的crud的框架需求較多 因此選擇了SpringBoot作為基礎選型。 Spring Boot是由Pivotal團隊提供的全新框架&#xf…

seaborn線性關系數據可視化:時間線圖|熱圖|結構化圖表可視化

一、線性關系數據可視化lmplot( ) 表示對所統計的數據做散點圖,并擬合一個一元線性回歸關系。 lmplot(x, y, data, hueNone, colNone, rowNone, paletteNone,col_wrapNone, height5, aspect1,markers"o", sharexTrue,shareyTrue, hue_orderNone, col_orde…

hdu 1257

http://acm.hdu.edu.cn/showproblem.php?pid1257 題意:有個攔截系統,這個系統在最開始可以攔截任意高度的導彈,但是之后只能攔截不超過這個導彈高度的導彈,現在有N個導彈需要攔截,問你最少需要多少個攔截系統 思路&am…

eda可視化_5用于探索性數據分析(EDA)的高級可視化

eda可視化Early morning, a lady comes to meet Sherlock Holmes and Watson. Even before the lady opens her mouth and starts telling the reason for her visit, Sherlock can tell a lot about a person by his sheer power of observation and deduction. Similarly, we…

我的AWS開發人員考試未通過。 現在怎么辦?

I have just taken the AWS Certified Developer - Associate Exam on July 1st of 2019. The result? I failed.我剛剛在2019年7月1日參加了AWS認證開發人員-聯考。結果如何? 我失敗了。 The AWS Certified Developer - Associate (DVA-C01) has a scaled score …

關系數據可視化gephi

表示對象之間的關系,可通過gephi軟件實現,軟件下載官方地址https://gephi.org/users/download/ 如何來表示兩個對象之間的關系? 把對象變成點,點的大小、顏色可以是它的兩個參數,兩個點之間的關系可以用連線表示。連線…

Hyperledger Fabric 1.0 從零開始(十二)——fabric-sdk-java應用

Hyperledger Fabric 1.0 從零開始(十)——智能合約(參閱:Hyperledger Fabric Chaincode for Operators——實操智能合約) Hyperledger Fabric 1.0 從零開始(十一)——CouchDB(參閱&a…

css跑道_如何不超出跑道:計劃種子的簡單方法

css跑道There’s lots of startup advice floating around. I’m going to give you a very practical one that’s often missed — how to plan your early growth. The seed round is usually devoted to finding your product-market fit, meaning you start with no or li…

將json 填入表格_如何將Google表格用作JSON端點

將json 填入表格UPDATE: 5/13/2020 - New Share Dialog Box steps available below.更新:5/13/2020-下面提供了 新共享對話框步驟。 Thanks Erica H!謝謝埃里卡H! Are you building a prototype dynamic web application and need to collaborate with …

leetcode 173. 二叉搜索樹迭代器

實現一個二叉搜索樹迭代器類BSTIterator ,表示一個按中序遍歷二叉搜索樹(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 類的一個對象。BST 的根節點 root 會作為構造函數的一部分給出。指針應初始化為一個不存在…

jyputer notebook 、jypyter、IPython basics

1 、修改jupyter默認工作目錄:打開cmd,在命令行下指定想要進的工作目錄,即鍵入“cd d/ G:\0工作面試\學習記錄”標紅部分是想要進入的工作目錄。 2、Tab補全 a、在命令行輸入表達式時,按下Tab鍵即可為任意變量(對象、…

cookie和session(1)

cookie和session 1.cookie產生 識別用戶 HTTP是無狀態協議,這就回出現這種現象:當你登錄一個頁面,然后轉到登錄網站的另一個頁面,服務器無法認識到。或者說兩次的訪問,服務器不能認識到是同一個客戶端的訪問&#xff0…