国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Seaborn從零開(kāi)始學(xué)習(xí)教程(一)

最近在做幾個(gè)項(xiàng)目的數(shù)據(jù)分析,每次用到seaborn進(jìn)行可視化繪圖的時(shí)候總是忘記具體操作。雖然seaborn的官方網(wǎng)站已經(jīng)詳細(xì)的介紹了使用方法,但是畢竟是英文,而且每次都上網(wǎng)查找不是很方便,還不如自己重新來(lái)一遍。因此博主想從零開(kāi)始將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 可以滿(mǎn)足大部分情況下的數(shù)據(jù)分析需求,但是針對(duì)一些特殊情況,還是需要用到 matplotlib 的。換句話說(shuō),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ù)集的分布可視化

    • 分類(lèi)數(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)單的方程來(lái)繪制一些偏置的正弦波,用來(lái)幫助我們查看不同的圖畫(huà)風(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è)的不必要的軸脊柱。通過(guò)matplotlib參數(shù)是做不到這一點(diǎn)的,但是你可以使用seaborndespine()方法來(lái)移除它們:

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

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

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

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

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

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

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

    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。而且你只能通過(guò)這個(gè)方法來(lái)覆蓋風(fēng)格定義中的部分參數(shù)。

    如果你想要看看這些參數(shù)都是些什么,可以調(diào)用這個(gè)方法,且無(wú)參數(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ù)可以控制繪圖元素的比例。
    首先,讓我們通過(guò)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()

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

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

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

    總結(jié)

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

    • 移除軸脊柱

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

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

    • 繪圖元素比例縮放

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

    本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
    打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
    猜你喜歡
    類(lèi)似文章
    Python Seaborn (1) 藝術(shù)化的圖表控制
    Python繪圖庫(kù)之Seaborn(一)
    十分鐘掌握Seaborn,進(jìn)階Python數(shù)據(jù)可視化分析
    【量化】seaborn在金融數(shù)據(jù)可視化中的應(yīng)用
    數(shù)據(jù)科學(xué):是時(shí)候該用seaborn畫(huà)圖了
    7天學(xué)會(huì)Python最佳可視化工具Seaborn(五):結(jié)構(gòu)化展示多維數(shù)據(jù)
    更多類(lèi)似文章 >>
    生活服務(wù)
    分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
    綁定賬號(hào)成功
    后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
    如果VIP功能使用有故障,
    可點(diǎn)擊這里聯(lián)系客服!

    聯(lián)系客服