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

打開APP
userphoto
未登錄

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

開通VIP
Python Seaborn (1) 藝術(shù)化的圖表控制
聲明

一直苦于沒有系統(tǒng)學(xué)習(xí)seanborn的教程,似乎市面上也還沒有完整的官方文檔的學(xué)習(xí)資料。終于下決心用幾天的時間通讀下官方文檔,并把記錄下來。

基于官方0.71版本,所有代碼和圖片皆已驗(yàn)證,與官方結(jié)論不符的地方會進(jìn)行標(biāo)注。如果有翻譯失當(dāng)或理解有誤的地方,敬請隨意指正!(http://seaborn.pydata.org/tutorial.html)

第一章 藝術(shù)化的圖表控制

一個引人入勝的圖表非常重要,賞心悅目的圖形不但能讓數(shù)據(jù)探索中一些重要的細(xì)節(jié)更容易被挖掘,也能更有利于在與觀眾交流分析結(jié)果的過程中吸引觀眾的注意力并使觀眾們更容易記住結(jié)論。

Matplotlib無疑是高度可定制的,但快速實(shí)施出吸引人的細(xì)節(jié)就變得有些復(fù)雜。Seaborn作為一個帶著定制主題和高級界面控制的Matplotlib擴(kuò)展包,能讓繪圖變得更輕松,本部分主要介紹seaborn是如何對matplotlib輸出的外觀進(jìn)行控制的。


%matplotlib inline #jupyter notebook 中的魔法函數(shù),如果不是使用該軟件請使用plt.show()用于顯示圖像import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltnp.random.seed(sum(map(ord,'aesthetics')))  # 定義種子

定義一個含偏移的正弦圖像,來比較傳統(tǒng)的matplotlib和seaborn的不同:


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

使用matplotlib默認(rèn)設(shè)置的圖形效果:


sinplot()


import seaborn as snssinplot()

seaborn默認(rèn)的灰色網(wǎng)格底色靈感來源于matplotlib卻更加柔和。大多數(shù)情況下,圖應(yīng)優(yōu)于表。seaborn的默認(rèn)灰色網(wǎng)格底色避免了刺目的干擾,對于多個方面的圖形尤其有用,是一些更復(fù)雜的工具的核心。

Seaborn將matplotlib參數(shù)分成兩個獨(dú)立的組。第一組設(shè)定了美學(xué)風(fēng)格,第二組則是不同的度量元素,這樣就可以很容易地添加到代碼當(dāng)中了。

操作這些參數(shù)的接口是兩對函數(shù)。為了控制樣式,使用axesstyle()和setstyle()函數(shù)。為了擴(kuò)展繪圖,請使用plotting_context()和set_context()函數(shù)。在這兩種情況下,第一個函數(shù)返回一個參數(shù)字典,第二個函數(shù)則設(shè)置matplotlib默認(rèn)屬性。

樣式控制:axes_style() and set_style()

有5個seaborn的主題,適用于不同的應(yīng)用和人群偏好:

  • darkgrid 黑色網(wǎng)格(默認(rèn))

  • whitegrid 白色網(wǎng)格

  • dark 黑色背景

  • white 白色背景

  • ticks 應(yīng)該是四周都有刻度線的白背景?

網(wǎng)格能夠幫助我們查找圖表中的定量信息,而灰色網(wǎng)格主題中的白線能避免影響數(shù)據(jù)的表現(xiàn),白色網(wǎng)格主題則類似的,當(dāng)然更適合表達(dá)“重數(shù)據(jù)元素”(heavy data elements不理解)


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

對于許多場景,(特別是對于像對話這樣的設(shè)置,您主要想使用圖形來提供數(shù)據(jù)模式的印象),網(wǎng)格就不那么必要了


sns.set_style('dark')sinplot()


sns.set_style('white')sinplot()

有時你可能想要給情節(jié)增加一點(diǎn)額外的結(jié)構(gòu),這就是ticks參數(shù)的用途:


sns.set_style('ticks')sinplot()# 官方的例子在上方/右方也擁有刻度線,而驗(yàn)證時卻沒有(是jupyter notebook的原因?)

這里是官方運(yùn)行的結(jié)果,供參考:

特別的可以通過sns.axes_style(style=None, rc=None) 返回一個sns.set_style()可傳的參數(shù)的字典

通過類似sns.set_style('ticks', {'xtick.major.size': 8, 'ytick.major.size': 8})的方式寫入更具體的配置樣式。

關(guān)于sns.axes_style()下面會有說明和運(yùn)行結(jié)果

用despine()進(jìn)行邊框控制

white和ticks參數(shù)的樣式,都可以刪除上方和右方坐標(biāo)軸上不需要的邊框,這在matplotlib中是無法通過參數(shù)實(shí)現(xiàn)的,卻可以在seaborn中通過despine()函數(shù)輕松移除他們。


sns.set_style('white')sinplot() # 默認(rèn)無參數(shù)狀態(tài),就是刪除上方和右方的邊框sns.despine()

一些圖的邊框可以通過數(shù)據(jù)移位,當(dāng)然調(diào)用despine()也能做同樣的事。當(dāng)邊框沒有覆蓋整個數(shù)據(jù)軸的范圍的時候,trim參數(shù)會限制留存的邊框范圍。


f, ax = plt.subplots()sns.violinplot(data=data)sns.despine(offset=10, trim=True); # offset 兩坐標(biāo)軸離開距離;

你也可以通過往despine()中添加參數(shù)去控制邊框


sns.set_style('whitegrid')sns.boxplot(data=data, palette='deep')sns.despine(left=True) # 刪除左邊邊框st = sns.axes_style('darkgrid')

despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False)

從plot()函數(shù)中移除頂部或右邊的邊框

臨時設(shè)定圖形樣式

雖然來回切換非常容易,但sns也允許用with語句中套用axes_style()達(dá)到臨時設(shè)置參數(shù)的效果(僅對with塊內(nèi)的繪圖函數(shù)起作用)。這也允許創(chuàng)建不同風(fēng)格的坐標(biāo)軸。


with sns.axes_style('darkgrid'):    plt.subplot(211)    sinplot()plt.subplot(212)sinplot(-1)

seaborn樣式中最重要的元素

如果您想要定制seanborn的樣式,可以將參數(shù)字典傳遞給axes_style()和set_style()的rc參數(shù)。注意,只能通過該方法覆蓋樣式定義的一部分參數(shù)。(然而,更高層次的set()函數(shù)接受任何matplotlib參數(shù)的字典)。

如果您想要查看包含哪些參數(shù),您可以只調(diào)用該函數(shù)而不帶參數(shù),這將返回當(dāng)前設(shè)置的字典:


sns.axes_style(){'axes.axisbelow': True, 'axes.edgecolor': 'white', 'axes.facecolor': '#EAEAF2', 'axes.grid': True, 'axes.labelcolor': '.15', 'axes.linewidth': 0.0, 'figure.facecolor': 'white', 'font.family': ['sans-serif'], 'font.sans-serif': ['Arial',  'Liberation Sans',  'Bitstream Vera Sans',  'sans-serif'], 'grid.color': 'white', 'grid.linestyle': '-', 'image.cmap': 'Greys', 'legend.frameon': False, 'legend.numpoints': 1, 'legend.scatterpoints': 1, 'lines.solid_capstyle': 'round', 'text.color': '.15', 'xtick.color': '.15', 'xtick.direction': 'out', 'xtick.major.size': 0.0, 'xtick.minor.size': 0.0, 'ytick.color': '.15', 'ytick.direction': 'out', 'ytick.major.size': 0.0, 'ytick.minor.size': 0.0}

或許,你可以試試不同種類的參數(shù)效果


sns.set_style('darkgrid', {'axes.facecolor': '.9'})sinplot()

通過 plotting_context() 和 set_context() 調(diào)整繪圖元素

另一組參數(shù)控制繪圖元素的規(guī)模,這應(yīng)該讓您使用相同的代碼來制作適合在較大或較小的情節(jié)適當(dāng)?shù)膱鼍爸惺褂玫那楣?jié)。

首先,可以通過sns.set()重置參數(shù)。


sns.set()

四種預(yù)設(shè),按相對尺寸的順序(線條越來越粗),分別是paper,notebook, talk, and poster。notebook的樣式是默認(rèn)的,上面的繪圖都是使用默認(rèn)的notebook預(yù)設(shè)。


sns.set_context('paper')plt.figure(figsize=(8,6))sinplot()


# default 默認(rèn)設(shè)置sns.set_context('notebook')plt.figure(figsize=(8,6))sinplot()


sns.set_context('talk')plt.figure(figsize=(8,6))sinplot()


sns.set_context('poster')plt.figure(figsize=(8,6))sinplot()

通過觀察各種樣式的結(jié)果,你應(yīng)當(dāng)可以了解context函數(shù)

類似的,還可以使用其中一個名稱來調(diào)用set_context()來設(shè)置參數(shù),您可以通過提供參數(shù)值的字典來覆蓋參數(shù)。

通過更改context還可以獨(dú)立地擴(kuò)展字體元素的大小。(這個選項(xiàng)也可以通過頂級set()函數(shù)獲得)。


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

類似地(盡管它可能用處不大),也可以使用with嵌套語句進(jìn)行臨時的設(shè)置。

樣式和上下文都可以用set()函數(shù)快速地進(jìn)行配置。這個函數(shù)還設(shè)置了默認(rèn)的顏色選項(xiàng),在下一節(jié)將詳細(xì)介紹這一功能。









本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Seaborn從零開始學(xué)習(xí)教程(一)
【量化】seaborn在金融數(shù)據(jù)可視化中的應(yīng)用
十分鐘掌握Seaborn,進(jìn)階Python數(shù)據(jù)可視化分析
Python繪圖庫之Seaborn(一)
Py之seaborn:seaborn庫的簡介、安裝、使用方法之詳細(xì)攻略
seaborn繪圖風(fēng)格的設(shè)置
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服