一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Seaborn從零開始學(xué)習(xí)教程(一)

 天上飛雞 2020-06-09

最近在做幾個(gè)項(xiàng)目的數(shù)據(jù)分析,每次用到seaborn進(jìn)行可視化繪圖的時(shí)候總是忘記具體操作。雖然seaborn的官方網(wǎng)站已經(jīng)詳細(xì)的介紹了使用方法,但是畢竟是英文,而且每次都上網(wǎng)查找不是很方便,還不如自己重新來一遍。因此博主想從零開始將seaborn學(xué)習(xí)一遍,做一個(gè)總結(jié),也希望供大家使用參考。

Seaborn簡(jiǎn)介

seabornmatplotlib一樣,也是Python進(jìn)行數(shù)據(jù)可視化分析的重要第三方包。但 seaborn 是在 matplotlib 的基礎(chǔ)上進(jìn)行了更高級(jí)的API封裝,使得作圖更加容易,圖形更加漂亮。

博主并不認(rèn)為seaborn可以替代matplotlib。雖然 seaborn 可以滿足大部分情況下的數(shù)據(jù)分析需求,但是針對(duì)一些特殊情況,還是需要用到 matplotlib 的。換句話說,matplotlib 更加靈活,可定制化,而 seaborn 像是更高級(jí)的封裝,使用方便快捷。

應(yīng)該把seaborn視為matplotlib的補(bǔ)充,而不是替代物。

Seaborn學(xué)習(xí)內(nèi)容

seaborn的學(xué)習(xí)內(nèi)容主要包含以下幾個(gè)部分:

  1. 風(fēng)格管理

  • 繪圖風(fēng)格設(shè)置

  • 顏色風(fēng)格設(shè)置

  • 繪圖方法

    • 數(shù)據(jù)集的分布可視化

    • 分類數(shù)據(jù)可視化

    • 線性關(guān)系可視化

  • 結(jié)構(gòu)網(wǎng)格

    • 數(shù)據(jù)識(shí)別網(wǎng)格繪圖

    本次將主要介紹風(fēng)格管理的使用。

    風(fēng)格管理 - 繪圖風(fēng)格設(shè)置

    除了各種繪圖方式外,圖形的美觀程度可能是我們最關(guān)心的了。將它放到第一部分,因?yàn)轱L(fēng)格設(shè)置是一些通用性的操作,對(duì)于各種繪圖方法都適用。

    讓我們先看一個(gè)例子。

    1. %matplotlib inline
    2. import numpy as np
    3. import matplotlib as mpl
    4. import matplotlib.pyplot as plt
    5. import seaborn as sns
    6. np.random.seed(sum(map(ord, "aesthetics")))

    我們定義了一個(gè)簡(jiǎn)單的方程來繪制一些偏置的正弦波,用來幫助我們查看不同的圖畫風(fēng)格是什么樣子的。

    1. def sinplot(flip=1):
    2.    x = np.linspace(0, 14, 100)
    3.    for i in range(1, 7):
    4.        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

    matplotlib默認(rèn)參數(shù)下繪制結(jié)果是這樣的:

    sinplot()

    轉(zhuǎn)換為seaborn默認(rèn)繪圖,可以簡(jiǎn)單的用set()方法。

    1. sns.set()
    2. sinplot()

    Seaborn 將 matplotlib 的參數(shù)劃分為兩個(gè)獨(dú)立的組合。第一組是設(shè)置繪圖的外觀風(fēng)格的,第二組主要將繪圖的各種元素按比例縮放的,以至可以嵌入到不同的背景環(huán)境中。

    操控這些參數(shù)的接口主要有兩對(duì)方法:

    • 控制風(fēng)格:axes_style()set_style()

    • 縮放繪圖:plotting_context()set_context()

    每對(duì)方法中的第一個(gè)方法(axes_style()plotting_context())會(huì)返回一組字典參數(shù),而第二個(gè)方法(set_style()set_context())會(huì)設(shè)置matplotlib的默認(rèn)參數(shù)。

    Seaborn的五種繪圖風(fēng)格

    有五種seaborn的風(fēng)格,它們分別是:darkgridwhitegriddarkwhiteticks。它們各自適合不同的應(yīng)用和個(gè)人喜好。默認(rèn)的主題是darkgrid

    1. sns.set_style("whitegrid")
    2. data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
    3. sns.boxplot(data=data);

    1. sns.set_style("dark")
    2. sinplot()

    1. sns.set_style("white")
    2. sinplot()

    1. sns.set_style("ticks")
    2. sinplot()

    移除軸脊柱

    white 和 ticks兩個(gè)風(fēng)格都能夠移除頂部和右側(cè)的不必要的軸脊柱。通過matplotlib參數(shù)是做不到這一點(diǎn)的,但是你可以使用seaborndespine()方法來移除它們:

    1. sinplot()
    2. sns.despine()

    一些繪圖也可以針對(duì)數(shù)據(jù)將軸脊柱進(jìn)行偏置,當(dāng)然也是通過調(diào)用despine()方法來完成。而當(dāng)刻度沒有完全覆蓋整個(gè)軸的范圍時(shí),trim參數(shù)可以用來限制已有脊柱的范圍。

    1. f, ax = plt.subplots()
    2. sns.violinplot(data=data)
    3. sns.despine(offset=10, trim=True);

    你也可以通過despine()控制哪個(gè)脊柱將被移除。

    1. sns.set_style("whitegrid")
    2. sns.boxplot(data=data, palette="deep")
    3. sns.despine(left=True)

    臨時(shí)設(shè)置繪圖風(fēng)格

    雖然來回切換風(fēng)格很容易,但是你也可以在一個(gè)with語句中使用axes_style()方法來臨時(shí)的設(shè)置繪圖參數(shù)。這也允許你用不同風(fēng)格的軸來繪圖:

    1. with sns.axes_style("darkgrid"):
    2.    plt.subplot(211)
    3.    sinplot()
    4. plt.subplot(212)
    5. sinplot(-1)

    覆蓋seaborn風(fēng)格元素

    如果你想定制化seaborn風(fēng)格,你可以將一個(gè)字典參數(shù)傳遞給axes_style()set_style()的參數(shù)rc。而且你只能通過這個(gè)方法來覆蓋風(fēng)格定義中的部分參數(shù)。

    如果你想要看看這些參數(shù)都是些什么,可以調(diào)用這個(gè)方法,且無參數(shù),這將會(huì)返回下面的設(shè)置:

    1. sns.axes_style()
    2. {'axes.axisbelow': True,
    3. 'axes.edgecolor': '.8',
    4. 'axes.facecolor': 'white',
    5. 'axes.grid': True,
    6. 'axes.labelcolor': '.15',
    7. 'axes.linewidth': 1.0,
    8. 'figure.facecolor': 'white',
    9. 'font.family': [u'sans-serif'],
    10. 'font.sans-serif': [u'Arial',
    11.  u'DejaVu Sans',
    12.  u'Liberation Sans',
    13.  u'Bitstream Vera Sans',
    14.  u'sans-serif'],
    15. 'grid.color': '.8',
    16. 'grid.linestyle': u'-',
    17. 'image.cmap': u'rocket',
    18. 'legend.frameon': False,
    19. 'legend.numpoints': 1,
    20. 'legend.scatterpoints': 1,
    21. 'lines.solid_capstyle': u'round',
    22. 'text.color': '.15',
    23. 'xtick.color': '.15',
    24. 'xtick.direction': u'out',
    25. 'xtick.major.size': 0.0,
    26. 'xtick.minor.size': 0.0,
    27. 'ytick.color': '.15',
    28. 'ytick.direction': u'out',
    29. 'ytick.major.size': 0.0,
    30. 'ytick.minor.size': 0.0}

    然后,你可以設(shè)置這些參數(shù)的不同版本了。

    1. sns.set_style("darkgrid", {"axes.facecolor": ".9"})
    2. sinplot()

    繪圖元素比例縮放

    有一套的參數(shù)可以控制繪圖元素的比例。
    首先,讓我們通過set()重置默認(rèn)的參數(shù):

    sns.set()
    

    有四個(gè)預(yù)置的環(huán)境,按大小從小到大排列分別為:papernotebooktalkposter。其中,notebook是默認(rèn)的。

    1. sns.set_context("paper")
    2. sinplot()

    1. sns.set_context("talk")
    2. sinplot()

    1. sns.set_context("poster")
    2. sinplot()

    你可以通過使用這些名字中的一個(gè)調(diào)用set_context()來設(shè)置參數(shù),并且你可以通過提供一個(gè)字典參數(shù)值來覆蓋參數(shù)。當(dāng)改變環(huán)境時(shí),你也可以獨(dú)立的去縮放字體元素的大小。

    1. sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
    2. sinplot()

    同樣的,你可以通過嵌入with語句臨時(shí)的控制繪圖的比例。

    總結(jié)

    • 介紹了Seaborn的5中繪圖風(fēng)格

    • 移除軸脊柱

    • 臨時(shí)設(shè)置繪圖風(fēng)格

    • 覆蓋Seaborn風(fēng)格元素

    • 繪圖元素比例縮放

    下一節(jié)將會(huì)介紹顏色風(fēng)格的使用。

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      欧美野外在线刺激在线观看| 男女一进一出午夜视频| 字幕日本欧美一区二区| 日本在线不卡高清欧美| 欧美欧美欧美欧美一区| 免费在线播放一区二区| 亚洲第一区欧美日韩在线| 国产精品尹人香蕉综合网| 欧美一区二区不卡专区| 成年男女午夜久久久精品| 午夜福利精品视频视频| 少妇视频一区二区三区| 美女被后入福利在线观看| 免费大片黄在线观看日本| 人妻一区二区三区多毛女| 国产精品午夜福利免费阅读| 欧美精品久久99九九| 国产一级精品色特级色国产| 欧美视频在线观看一区| 国产精品十八禁亚洲黄污免费观看| 国产精品欧美一区二区三区| 久久热麻豆国产精品视频| 丰满人妻熟妇乱又伦精另类视频| 日本午夜免费啪视频在线| 成人精品日韩专区在线观看| 午夜日韩在线观看视频| 人妻亚洲一区二区三区| 老熟女露脸一二三四区| 91蜜臀精品一区二区三区| 国产精品一区二区传媒蜜臀| 麻豆最新出品国产精品| 国产精品亚洲精品亚洲| 老熟妇乱视频一区二区| 黄片在线免费看日韩欧美| 黄片三级免费在线观看| 草草视频精品在线观看| 日本人妻精品有码字幕| 成人精品视频在线观看不卡| 免费亚洲黄色在线观看| 日韩高清毛片免费观看| 日本av一区二区不卡|