中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
Python繪圖庫之Seaborn(三)

Seaborn繪圖

條形圖

這里的條形圖不是水平的柱狀圖。

使用函數(shù)stripplot繪制條形圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
fig, ax = plt.subplots(figsize=(6,6))
tips = sns.load_dataset('tips')
sns.stripplot(data=tips, x='total_bill', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這其實就是一個散點圖,只是一個維度的散點圖,而不需要兩個維度的散點。它要展示的不是兩個變量之間的關(guān)系,而是一個變量原始數(shù)據(jù)的散點分布。

當(dāng)然它也可以給定另一個維度,一般是一個分類變量,繪制分組的散點分布圖。執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
fig, ax = plt.subplots(figsize=(6,6))
tips = sns.load_dataset('tips')
sns.stripplot(data=tips, x='total_bill', y='day', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

改變x和y的數(shù)據(jù),就可以改變圖形的水平垂直方向了。執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
fig, ax = plt.subplots(figsize=(6,6))
tips = sns.load_dataset('tips')
sns.stripplot(data=tips, y='total_bill', x='time', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

類似地,使用hue作為分布變量,來繪制不同類別下的條形圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
fig, ax = plt.subplots(figsize=(6,6))
tips = sns.load_dataset('tips')
sns.stripplot(data=tips, x='time', y='total_bill', hue='time', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這和上一幅有什么本質(zhì)上的區(qū)別嘛?沒有,只是顏色有稍微的區(qū)別。

要是我們給定hue參數(shù)是另一個分類變量,那么得到的就是一個多分類下的條形圖了,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
fig, ax = plt.subplots(figsize=(6,6))
tips = sns.load_dataset('tips')
sns.stripplot(data=tips, x='total_bill', y='day', hue='size', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這樣子的散點圖中,有一個維度是沒有實際意義的,只是一個編號,那么另一個維度才表示散點的大小,所以才有波動。那我們有時候可能不需要這種波動,會得到一種很“奇怪”的線點圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
fig, ax = plt.subplots(figsize=(6,6))
tips = sns.load_dataset('tips'
sns.stripplot(data=tips, x='total_bill', y='day', hue='sex', dodge=True
              jitter=False, ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這里散點分布在一條線上,通過指定參數(shù)jitter為True。指定參數(shù)dodge為True,表示分類變量下的數(shù)據(jù)是并排排列,就像直方圖中的參數(shù)作用一樣。

有關(guān)函數(shù)stripplot的更多用法請參考這里

https://seaborn.pydata.org/generated/seaborn.stripplot.html

上面都是在圖形水平下的函數(shù)實現(xiàn)的,下面使用Figure層面的函數(shù)catplot來繪制條形圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
tips = sns.load_dataset('tips'
fig = sns.catplot(data=tips, x='time', y='total_bill', hue='sex', col='day'
                  aspect=.5, kind='strip')
plt.show()

程序輸出的結(jié)果見下圖。

有關(guān)函數(shù)catplot的更多用法請參考這里

https://seaborn.pydata.org/generated/seaborn.catplot.html

箱線圖

箱線圖,也叫做五數(shù)圖。

使用函數(shù)boxplot來繪制箱線圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.boxplot(x=titanic['age'],ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這里沒有使用數(shù)據(jù)data來繪圖,而是直接傳遞一個具體的原始數(shù)據(jù)。

繪制分組箱線圖很容易的,只需要執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.boxplot(data=titanic, x='age', y='class', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

通過參數(shù)hue來進(jìn)一步分類,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.boxplot(data=titanic, x='age', y='class', hue='alive', ax=ax, palette='PRGn')
plt.show()

程序輸出的結(jié)果見下圖。

可以傳遞一些matplotlib中boxplot的函數(shù),執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.boxplot(data=titanic, x='age', y='class',notch=True, showcaps=False,
            flierprops={'marker''x'},
            boxprops={'facecolor': (.4.6.8.5)},
            medianprops={'color''coral'},ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

以上都是圖形層面的繪圖函數(shù),還可以通過Figure層面的箱線圖函數(shù)catplot來繪制。執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig = sns.catplot(data=titanic, x='age', y='embarked',notch=True, showcaps=False,
            flierprops={'marker''x'}, kind='box',
            boxprops={'facecolor': (.4.6.8.5)},
            medianprops={'color''coral'}, aspect=1.3)
plt.show()

程序輸出的結(jié)果見下圖。

更多有關(guān)函數(shù)boxplot的用法請參考這里

https://seaborn.pydata.org/generated/seaborn.boxplot.html

小提琴圖

小提琴圖使用函數(shù)violinplot。

小提琴圖是有箱線圖和核密度曲線組成的,是一個對稱的圖形。

繪制一個簡單的小提琴圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.violinplot(data=titanic, x='age', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

在給定一個分類變量,通過另一個維度y指定即可,繪制分組小提琴圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
iris = sns.load_dataset('iris')
fig, ax = plt.subplots(figsize=(6,6))
sns.violinplot(data=iris, x='species', y='sepal_length', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

再使用參數(shù)hue給定另一個分組變量,繪制雙分組下的小提琴圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.violinplot(data=titanic, x='class', y='age', hue='alive', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

剛剛說到了,小提琴圖本來是一個對稱的圖形,因此我們可以只需要一邊就好了,那么我們在繪制分組的小提琴圖時,可以通過指定參數(shù)split為True使得小提琴圖只保留一邊,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.violinplot(data=titanic, x='deck', y='age', hue='alive', split=True, ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

通過參數(shù)bw來設(shè)置核密度估計曲線的窗寬,執(zhí)行代碼如下:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(6,6))
sns.violinplot(data=titanic, x='age', y='alive', bw=.15, ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

小提琴圖中間可以不是箱線圖的箱子,也可以是其他的,通過參數(shù)inner來指定,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(figsize=(10,6))
sns.violinplot(data=titanic, x='age', y='embark_town', inner='quartile', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這里給出的就只是三個分位數(shù)了,中位數(shù),兩個四分位數(shù)。

有關(guān)函數(shù)violinplot的更多用法請參考這里

https://seaborn.pydata.org/generated/seaborn.violinplot.html

這是圖形層面的函數(shù),還可以通過catplot來繪制小提琴圖,執(zhí)行代碼如下:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
titanic = sns.load_dataset('titanic')
fig = sns.catplot(data=titanic, x='age', y='embark_town', hue='class', inner='point'
                  aspect=1.2,kind='violin')
plt.show()

程序輸出的結(jié)果見下圖。

點圖

什么點圖,這個名字是我自己瞎起的。使用函數(shù)pointplot完成。

執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax=plt.subplots(figsize=(6,6))
sns.pointplot(data=penguins, x='island', y='body_mass_g', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

點圖是估計一個數(shù)值型變量的某個估計量的,并且給出這個估計量的誤差。它默認(rèn)就是估計總體均值的,以樣本均值來估計。所以那個點就是樣本均值,那個errorbar是百分之95的置信區(qū)間。

給定一個分類變量,繼續(xù)做估計,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax=plt.subplots(figsize=(6,6))
sns.pointplot(data=penguins, x='island', y='body_mass_g', hue='sex', ax=ax, 
              markers=['^''s'],seed=10, n_boot=2000, errorbar='sd')
plt.show()

程序輸出的結(jié)果見下圖。

有關(guān)函數(shù)pointplot的更多參數(shù)使用,請參考這里

https://seaborn.pydata.org/generated/seaborn.pointplot.html

再來看使用Figure層面的繪圖函數(shù),執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig = sns.catplot(kind='point', data=penguins, x='body_mass_g', y='island',
                  errorbar=('pi'100), capsize=.4, join=False, color='.5', aspect=1.2)
plt.show()

程序輸出的結(jié)果見下圖。

柱狀圖

繪制一個分類變量的柱狀圖,使用函數(shù)countplot,而不是barplot。

執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax = plt.subplots(figsize=(6,6))
sns.countplot(data=penguins, x='island', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

繪制兩個分類變量下的柱狀圖,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax = plt.subplots(figsize=(6,6))
sns.countplot(data=penguins, x='island', hue='sex', ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這是并排排列的,要是想要繪制堆疊柱狀圖,只需要指定參數(shù)dodge為False即可,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax = plt.subplots(figsize=(10,6))
sns.countplot(data=penguins, y='island', hue='sex', dodge=False, ax=ax)
plt.show()

程序輸出的結(jié)果見下圖。

這實際上不叫作堆疊條形圖,這可能叫做重疊條形圖。

那可不可以繪制三分類變量的柱狀圖?其實就是三維列聯(lián)表下的圖示罷了,目前來說,Seaborn還做不到,沒有現(xiàn)成的API。在后面可以借助分面即子圖的方式來展示,這也是一般的處理方法。

更多有關(guān)countplot函數(shù)的用法,請參考這里

https://seaborn.pydata.org/generated/seaborn.countplot.html

那對于一個分類變量和一個數(shù)值型變量的柱狀圖,這種柱狀圖是展示該數(shù)值變量的數(shù)字特征,一般均值,中位數(shù)啥的,使用函數(shù)barplot,它可以繪制errorbar,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax = plt.subplots(figsize=(10,5))
sns.barplot(data=penguins, x='bill_length_mm', y='island', ax=ax, width=0.5)
plt.show()

程序輸出的結(jié)果見下圖。

通過hue來設(shè)置另一個分類變量,執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax = plt.subplots(figsize=(6,6))
sns.barplot(data=penguins, y='bill_length_mm', x='island', hue='sex', ax=ax, width=0.4)
plt.show()

程序輸出的結(jié)果見下圖。

通過estimator和errorbar來指定要估計的參數(shù),執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig, ax = plt.subplots(figsize=(6,6))
sns.barplot(data=penguins, y='body_mass_g', x='island', hue='sex', ax=ax, width=0.4,
            estimator='std', errorbar=('ci',90), palette='PRGn', seed=10, n_boot=200)
plt.show()

程序輸出的結(jié)果見下圖。

更多有關(guān)barplot函數(shù)的用法,請參考這里

https://seaborn.pydata.org/generated/seaborn.barplot.html

下面再看一個Figure層面的bar繪圖函數(shù),執(zhí)行下面的代碼:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
penguins = sns.load_dataset('penguins')
fig = sns.catplot(kind='bar', data=penguins, x='body_mass_g', y='island'
                  errorbar=('pi'50), capsize=.4,errcolor='.5', linewidth=3
                  edgecolor='.5', facecolor=(0000),aspect=1.3)
plt.show()

程序輸出的結(jié)果見下圖。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Seaborn常用的10種數(shù)據(jù)分析圖表
python爬蟲28 | 你爬下的數(shù)據(jù)不分析一波可就虧了啊,使用python進(jìn)行數(shù)據(jù)可視化
如何利用Seaborn繪制熱力圖?
十分鐘掌握Seaborn,進(jìn)階Python數(shù)據(jù)可視化分析
Seaborn 繪制 21 種超實用精美圖表
Matplotlib+Seaborn:一文掌握Python可視化庫的兩大王者
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服