數(shù)據(jù)可視化課件_第1頁(yè)
數(shù)據(jù)可視化課件_第2頁(yè)
數(shù)據(jù)可視化課件_第3頁(yè)
數(shù)據(jù)可視化課件_第4頁(yè)
數(shù)據(jù)可視化課件_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1數(shù)據(jù)可視化第一章Matplotlib的基本使用第二章Matplotlib的進(jìn)階使用第三章…第四章目錄Contents…第五章緒論2

Bokeh的使用2圖表基本參數(shù)設(shè)置圖表輔助參數(shù)設(shè)置3基本圖形繪制45圖表進(jìn)階操作6工具欄設(shè)置7其他交互工具設(shè)置1引言3引言1.41引言

51引言Bokeh是一個(gè)交互式可視化庫(kù),針對(duì)現(xiàn)代web瀏覽器進(jìn)行顯示。它的目標(biāo)是提供優(yōu)雅、簡(jiǎn)潔的通用圖形構(gòu)造,并在非常大的或流數(shù)據(jù)集上以高性能的交互性擴(kuò)展這種能力。Bokeh可以幫助任何想要快速輕松地創(chuàng)建交互式圖表、儀表板和數(shù)據(jù)應(yīng)用程序。Bokeh庫(kù)捆綁了多種語(yǔ)言,包括Python、R語(yǔ)言、lua和Julia,結(jié)合這些語(yǔ)言產(chǎn)生了JSON文檔。該文檔將作為BokehJS(JavaScript庫(kù))的輸入,之后將數(shù)據(jù)展示到Web瀏覽器上面。6圖表基本參數(shù)設(shè)置2.72圖表基本參數(shù)設(shè)置Bokeh的安裝和其他庫(kù)的安裝大同小異。如果你已經(jīng)是anaconda用戶,則只需運(yùn)行以下命令:condainstallbokeh。或者,也可以使用pip進(jìn)行安裝:pipinstallbokeh。在安裝好后,我們就可以繪制簡(jiǎn)單的圖形了。82圖表基本參數(shù)設(shè)置如果是在類似spyder等非notebook中進(jìn)行繪圖,我們就不能使用output_notebook,而需要使用output_file命令。運(yùn)行后,會(huì)彈出一個(gè)HTML窗口,我們所繪制的圖形即展現(xiàn)在彈出的HTML中。同時(shí),會(huì)產(chǎn)生一個(gè)HTML文件保存在指定路徑下。92圖表基本參數(shù)設(shè)置102圖表基本參數(shù)設(shè)置——基本設(shè)置不同于Matplotlib和Seaborn繪圖,用Bokeh進(jìn)行繪圖,有很多線的設(shè)置、字體的設(shè)置等是通用的。比如說,outline_line_width用于調(diào)整外邊框的線寬,xaxis.axis_line_width用于調(diào)整x軸的線寬。其本質(zhì)都是通過line_width調(diào)整線寬。接下來我們介紹一些類似line_width這種通用的基本設(shè)置。線的設(shè)置112圖表基本參數(shù)設(shè)置——基本設(shè)置在Bokeh中,常見的線的設(shè)置參數(shù)如下:?line_color:設(shè)置顏色,默認(rèn)值:黑色。?line_width:設(shè)置寬度,默認(rèn)值:1。?line_alpha:設(shè)置透明度,默認(rèn)值:1.0。?line_join:設(shè)置連接點(diǎn)樣式:可選值有:'miter'、'round'、'bevel',默認(rèn)值:'bevel'。?line_cap:設(shè)置線端口樣式,可選值有:'butt'、'round'、'square',默認(rèn)值:'butt'。?line_dash:設(shè)置線條樣式,可選值有:'solid'、'dashed'、'dotted'、'dotdash'、'dashdot',或者整型數(shù)組方式(例如[6,4]),默認(rèn)值:[]。線的設(shè)置122圖表基本參數(shù)設(shè)置——基本設(shè)置在Bokeh中,常見的填充的設(shè)置參數(shù)如下:?fill_color:設(shè)置填充顏色。?fill_alpha:設(shè)置填充透明度。填充的設(shè)置132圖表基本參數(shù)設(shè)置——基本設(shè)置在Bokeh中,常見的字體的設(shè)置參數(shù)如下:?text_font:字體。?text_font_size:字體大小,單位為pt、px或者em,默認(rèn)值為'12px'('10pt'或'1em')。?text_font_style:字體風(fēng)格,可選參數(shù)有:'normal'、'italic'、'bold',默認(rèn)值為:'normal'。?text_color:字體顏色。?text_alpha:字體透明度,默認(rèn)值為:1.0。?text_align:字體水平方向位置,可選參數(shù)有:'left'、'right'、'center',默認(rèn)值為:'left'。?text_baseline:字體垂直方向位置,可選參數(shù)為:'top','middle','bottom','alphabetic''hanging',默認(rèn)值為:'bottom'。字體的設(shè)置142圖表基本參數(shù)設(shè)置——基本設(shè)置字體的設(shè)置152圖表基本參數(shù)設(shè)置——基本設(shè)置在Bokeh中,基本參數(shù)中都含有.visible參數(shù),用于設(shè)置該參數(shù)是否可見可見性的設(shè)置162圖表基本參數(shù)設(shè)置——背景的設(shè)置如果我們想修改背景色等,可以通過backgroud和border分別修改繪圖空間背景和外邊界背景。172圖表基本參數(shù)設(shè)置——背景的設(shè)置我們還可以通過min_border參數(shù)去修改外邊界的范圍182圖表基本參數(shù)設(shè)置——軸線的設(shè)置軸線的線的設(shè)置和標(biāo)簽的設(shè)置,可以參考之前所講的基本設(shè)置中線的設(shè)置和字體的設(shè)置。192圖表基本參數(shù)設(shè)置——軸線的設(shè)置在介紹軸線的刻度設(shè)置前,我們需要先了解major_tick和minor_tick分別指的是哪部分。以下圖的y軸為例,我們可以簡(jiǎn)單理解成:刻度值為3、4等整數(shù)的刻度為主刻度;刻度值為3.2、3.4等,位于主刻度之間的,為次刻度。202圖表基本參數(shù)設(shè)置——軸線的設(shè)置主次刻度的設(shè)置除了刻度線的設(shè)置外,還可以通過tick_in和tick_out控制刻度線的方向和長(zhǎng)度。可以看出,tick_in控制的是朝內(nèi)的長(zhǎng)度,tick_out控制的是朝外的長(zhǎng)度。212圖表基本參數(shù)設(shè)置——網(wǎng)格的設(shè)置在網(wǎng)格的設(shè)置中,我們可以通過修改grid_line來設(shè)置網(wǎng)格線的樣式,還可以通過band_fill來設(shè)置填充的顏色等。222圖表基本參數(shù)設(shè)置——圖例的設(shè)置在設(shè)置圖例時(shí),我們需要注意,一定要在繪圖時(shí)就設(shè)置好圖例的名稱,后續(xù)才能對(duì)圖例的位置、顏色、字體等進(jìn)行設(shè)置。設(shè)置圖例時(shí)一些常見的參數(shù)如下:legend.location:圖例位置,可選參數(shù)有'top_left'、'top_center'、'top_right'、'center_right'、'bottom_right'、'bottom_center'、'bottom_left'、'center_left'、'center',默認(rèn)參數(shù)為'top_right'。legend.orientation:圖例排列方向,可選參數(shù)有'vertical'、'horizontal',默認(rèn)參數(shù)為'vertical'。23圖表輔助參數(shù)設(shè)置3.243圖表輔助參數(shù)設(shè)置——輔助線的設(shè)置假設(shè)我們?cè)诶L圖的時(shí)候用到了折線圖,我們想用兩條線標(biāo)注出該折線圖的最大值和最小值,就需要用到輔助線。在Bokeh中,輔助線是通過annotations中的Span進(jìn)行調(diào)用的,常見參數(shù)如下:location:設(shè)置位置,對(duì)應(yīng)坐標(biāo)值。dimension:設(shè)置方向,可選參數(shù)有'width'(橫向)'height'(縱向)。253圖表輔助參數(shù)設(shè)置——輔助矩形的設(shè)置輔助矩形是通過annotations中的BoxAnnotation進(jìn)行調(diào)用的。BoxAnnotation常見參數(shù)如下:?left:設(shè)置位置,左邊界坐標(biāo)值。?right:設(shè)置位置,右邊界坐標(biāo)值。?top:設(shè)置位置,上邊界坐標(biāo)值。?bottom:設(shè)置位置,下邊界坐標(biāo)值。263圖表輔助參數(shù)設(shè)置——注釋文本的設(shè)置注釋文本是通過annotations中的Label進(jìn)行調(diào)用的,需要注意是annotations中的Label模塊,而不是axis中的Label模塊。Label常見參數(shù)如下:x,y:注釋文本位置。text:注釋文本內(nèi)容。angel:注釋文本旋轉(zhuǎn)角度。273圖表輔助參數(shù)設(shè)置——注釋箭頭的設(shè)置注釋箭頭是通過annotation中的Arrow進(jìn)行調(diào)用的。Arrow常見參數(shù)如下:x_start,y_start,x_end,y_end:箭頭矢量方向。start,end:arrow_head的實(shí)例。其中arrow_head中包含有三種常見的箭頭類型:'OpenHead'、'NormalHead'、'VeeHead'283圖表輔助參數(shù)設(shè)置——調(diào)色板的設(shè)置在Bokeh中,也有著類似seaborn中的調(diào)色板的存在,具體可參考官方文檔。調(diào)色板通過palettes進(jìn)行調(diào)用。我們可以通過'palettes.__palettes__'查看所有的調(diào)色板。293圖表輔助參數(shù)設(shè)置——調(diào)色板的設(shè)置如果我們想調(diào)用某個(gè)調(diào)色板,還需要調(diào)用brewer對(duì)調(diào)色板進(jìn)行解析,并選擇解析后的顏色數(shù)量。可以看到,我們?cè)谶@里使用了'Reds'這個(gè)調(diào)色板,并根據(jù)圓形的數(shù)量,將該調(diào)色板解析成三個(gè)顏色。303圖表輔助參數(shù)設(shè)置——調(diào)色板的設(shè)置我們還可以直接查看解析后的顏色有哪些:直接通過解析整個(gè)調(diào)色板,去查看對(duì)于該調(diào)色板最多可以使用多少個(gè)顏色。同樣以'Reds'這個(gè)調(diào)色板為例運(yùn)行結(jié)果的含義是,對(duì)于'Reds'這個(gè)調(diào)色板而言,若解析成三個(gè)顏色,這三個(gè)顏色分別為'#de2d26'、'#fc9272'、'#fee0d2'。而對(duì)于第二段運(yùn)行結(jié)果,我們可以看到,是由好幾個(gè)類似字典的結(jié)構(gòu)組成,其中左邊的數(shù)字,就是解析的顏色數(shù)量,右邊則為對(duì)應(yīng)的顏色。可以看到,'Reds'這個(gè)調(diào)色板最多可以解析出256個(gè)顏色。31基本圖形繪制4.324基本圖形繪制在學(xué)習(xí)了這么多基本參數(shù)和輔助參數(shù)后,我們應(yīng)該對(duì)如何使用Bokeh有了大概的印象,接下來就開始學(xué)習(xí)繪制一些基本圖形。334基本圖形繪制——散點(diǎn)圖Bokeh中的散點(diǎn)圖,除了前面見過的circle,還有12種散點(diǎn)樣式。344基本圖形繪制——散點(diǎn)圖這些函數(shù)的參數(shù)大同小異,我們以diamond為例。diamond常見參數(shù)如下:x,y:離散點(diǎn)的x坐標(biāo)和y坐標(biāo),列名或者列表。size:離散點(diǎn)的大小,默認(rèn)值為4。angle:離散點(diǎn)旋轉(zhuǎn)角度,默認(rèn)值為0.0。source:Bokeh專屬數(shù)據(jù)格式。354基本圖形繪制——散點(diǎn)圖如果我們想繪制不同顏色的散點(diǎn)圖,有以下兩種方法:專門設(shè)置一列顏色的數(shù)據(jù)364基本圖形繪制——散點(diǎn)圖2.遍歷數(shù)據(jù)分開做圖374基本圖形繪制——折線圖一條折線的折線圖繪制起來比較簡(jiǎn)單,直接通過line就可以執(zhí)行。line的常見參數(shù)如下:x,y:x坐標(biāo)和y坐標(biāo),列名或者列表。line_alpha:線條顏色的透明度。line_color:線條的顏色。line_dash:設(shè)置線條樣式,可選值有'solid'、'dashed'、'dotted'、'dotdash'、'dashdot'。單線圖我們還可以在這個(gè)折線圖的基礎(chǔ)上增加散點(diǎn)圖,突出每個(gè)坐標(biāo)點(diǎn)的位置。384基本圖形繪制——折線圖多線圖如果我們想繪制有多條折線的折線圖,有以下兩種方式實(shí)現(xiàn)。(1)multi_line:在Bokeh中,專門有個(gè)函數(shù)multi_line可以用于繪制多條折線的折線圖,與line傳入的參數(shù)有所差異,multi_line傳入的x和y是多個(gè)列表。394基本圖形繪制——折線圖(2)

多個(gè)line:我們還可以在一個(gè)figure上繪制多個(gè)line,也可實(shí)現(xiàn)多條折線的效果。多線圖404基本圖形繪制——餅狀圖餅圖在Bokeh中通過函數(shù)wedge繪制餅狀圖。wedge常見參數(shù)如下:x,y:圓心的x軸坐標(biāo)和y軸坐標(biāo)。radius:圓的半徑。start_angle:起始角度。end_angle:終止角度。direction:起止方向,默認(rèn)參數(shù)為'anticlock'(逆時(shí)針)。繪制的過程相對(duì)折線圖和散點(diǎn)圖復(fù)雜一點(diǎn),我們需要先將各個(gè)類別的占比計(jì)算出來,才能繪制出餅狀圖414基本圖形繪制——餅狀圖環(huán)形圖如果我們想繪制環(huán)形圖,則需要調(diào)用annular_wedge。其常見參數(shù)如下:x,y:圓環(huán)圓心的x軸坐標(biāo)和y軸坐標(biāo)。inner_radius:內(nèi)環(huán)的半徑。outer_radius:外環(huán)的半徑。start_angle:起始角度。end_angle:終止角度。direction:起止方向,默認(rèn)參數(shù)為'anticlock'(逆時(shí)針)424基本圖形繪制——面積圖一般面積圖對(duì)于一般面積圖而言,所有的數(shù)據(jù)都是從相同的零軸開始的。我們?cè)谶@里可以運(yùn)用之前介紹的注釋箭頭,以便理解面積圖的繪制過程。首先從點(diǎn)(1,6)出發(fā),再分別到點(diǎn)(2,7)、(3,2)、(2,2),最后回到點(diǎn)(1,6),并將該過程形成的區(qū)域用設(shè)定的color進(jìn)行填充,完成面積圖的繪制。434基本圖形繪制——面積圖堆疊面積圖我們?cè)诹私獾矫娣e圖的繪制過程后,就可以利用一般面積圖來繪制層疊面積圖444基本圖形繪制——柱狀圖單系列柱狀圖——縱向柱形圖在Bokeh中,我們通過vbar繪制縱向柱形圖;通過hbar繪制橫向柱形圖。vbar常用參數(shù)如下:x:橫軸坐標(biāo)。width:寬度。top:底高度。bottom:頂高度。454基本圖形繪制——柱狀圖單系列柱狀圖——橫向柱形圖hbar與vbar的常用參數(shù)十分類似,具體如下:y:縱軸坐標(biāo)。height:厚度。left:左邊最小值。right:右邊最大值。464基本圖形繪制——柱狀圖多系列柱狀圖我們通常將柱形圖從類別的維度分為單系列柱形圖和多系列柱形圖,上述介紹的都是單系列柱形圖,我們還可以根據(jù)數(shù)據(jù)集繪制多系列柱形圖,并按顏色進(jìn)行區(qū)分。474基本圖形繪制——柱狀圖我們還可以調(diào)用類似seaborn中的dodge參數(shù),對(duì)數(shù)據(jù)再進(jìn)行分組多系列柱狀圖484基本圖形繪制——柱狀圖多系列柱狀圖——堆疊柱狀圖如果我們想繪制堆疊柱形圖,則需要調(diào)用vbar_stack或hbar_stack函數(shù)494基本圖形繪制——柱狀圖多系列柱狀圖——堆疊柱狀圖我們還可以對(duì)數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行加工,用于繪制百分比堆疊柱形圖,但是前期的數(shù)據(jù)處理工作可能會(huì)有一點(diǎn)麻煩。504基本圖形繪制——直方圖在Bokeh中,通過調(diào)用quad函數(shù)繪制直方圖,且傳入的參數(shù)是每個(gè)柱子的四邊值。514基本圖形繪制——矩形圖最后我們介紹一下矩形圖,不同于面積圖,矩形圖傳入的為每個(gè)矩形的幾何中心的坐標(biāo)。常見的矩形圖有:square、square_cross、square_dot、square_pin和square_x。52圖表進(jìn)階操作5.535圖表進(jìn)階操作在學(xué)習(xí)了前面所講的很多基本操作后,我們就已經(jīng)可以通過排列組合繪制出非常多的圖形了,但對(duì)于一些復(fù)雜的圖形,可能需要更多地用到本章所講的進(jìn)階操作。545圖表進(jìn)階操作——ColumnDataSource在上述的繪圖過程中,我們用到了ColumnDataSource這個(gè)數(shù)據(jù)形式。ColumnDataSource是Bokeh中一種非常獨(dú)特且很實(shí)用的數(shù)據(jù)形式ColumnDataSource()方法有一個(gè)參數(shù)為'data'。'data'主要有以下三種類型:1.'data'為字典當(dāng)'data'的表現(xiàn)形式是一個(gè)字典的形式時(shí),一般情況下,字典的key值是一個(gè)字符串,代表列名稱,而value則是list形式或者numpy的array形式從上面結(jié)果來看,source是一個(gè)

ColumnDataSource對(duì)象,不能直接打印出來結(jié)果,但可以在繪圖時(shí)直接傳入?yún)?shù)進(jìn)行使用。555圖表進(jìn)階操作——ColumnDataSourceColumnDataSource的data參數(shù),也可以是pandas的DataFrame。當(dāng)ColumnDataSource的參數(shù)是DataFrame時(shí),可以直接用DataFrame的列名稱作為索引名稱,也可以直接用DataFrame已有的列名稱,如果沒有索引名稱,則索引名稱一般默認(rèn)用‘index’。2.'data'為DataFrame565圖表進(jìn)階操作——ColumnDataSourceColumnDataSource的data參數(shù),還也可以是pandas的DataFrame的groupby對(duì)象。當(dāng)ColumnDataSource的參數(shù)是DataFrame的groupby對(duì)象時(shí),在繪圖時(shí)使用的列名為groupby對(duì)象的groupby.describe()方法中的列名稱。由于groupby會(huì)有多個(gè)統(tǒng)計(jì)參數(shù),在引用時(shí),列表會(huì)合并到一起,形式如column_mean等。3.'data'為DataFrame中的GroupBy對(duì)象這樣我們?cè)诶L圖時(shí)可以直接使用groupby.describe()方法中的列名稱575圖表進(jìn)階操作——軸線的進(jìn)階設(shè)置有時(shí)我們的數(shù)據(jù)集并不完全是數(shù)字類型,可能需要x軸是類別變量,可能x軸是時(shí)間序列,也可能y軸會(huì)是其他類型的數(shù)據(jù)。這時(shí),就需要另外對(duì)軸線進(jìn)行設(shè)置。585圖表進(jìn)階操作——軸線的進(jìn)階設(shè)置x軸的進(jìn)階設(shè)置我們首先要對(duì)數(shù)據(jù)集本身格式進(jìn)行修改當(dāng)數(shù)據(jù)構(gòu)建好了后,再通過x_range設(shè)置橫軸標(biāo)簽,就可以實(shí)現(xiàn)x軸標(biāo)簽的字符串設(shè)置了595圖表進(jìn)階操作——軸線的進(jìn)階設(shè)置y軸的進(jìn)階設(shè)置當(dāng)一組數(shù)據(jù)的最大值最小值相差過大時(shí),我們可以考慮使用對(duì)數(shù)法,那么如何在y軸中體現(xiàn)對(duì)數(shù)呢?可以通過修改y軸的axis_type,設(shè)置對(duì)數(shù)坐標(biāo)軸605圖表進(jìn)階操作——多圖表設(shè)置1.多次調(diào)用不同的Figure我們可以多次調(diào)用不同的Figure,將多個(gè)圖表顯示在一起。如果我們想在一個(gè)Figure上顯示多個(gè)圖表,有以下兩種方法:615圖表進(jìn)階操作——多圖表設(shè)置2.調(diào)用gridplot模塊可能有細(xì)心的同學(xué)發(fā)現(xiàn),通過多個(gè)figure繪制出來的圖形,不能一起聯(lián)動(dòng),如果想要一起聯(lián)動(dòng)的話,就需要調(diào)用gridplot模塊。62工具欄設(shè)置6.636工具欄設(shè)置與matplotlib和seaborn相比,Bokeh的工具欄是非常獨(dú)特的一個(gè)功能,我們可以利用工具欄移動(dòng)圖形,篩選數(shù)據(jù),有著很多實(shí)用的功能。接下來我們就來學(xué)習(xí)一下Bokeh中工具欄的簡(jiǎn)單使用。646工具欄設(shè)置——工具欄位置設(shè)置工具欄的位置參數(shù)通過toolbar_location參數(shù)進(jìn)行控制,可選參數(shù)有'above'、'below'、'left'、'right',默認(rèn)參數(shù)為'right'。如果我們?cè)O(shè)置工具欄位置為'above'時(shí),可以增加設(shè)置toolbar_sticky參數(shù)為true,使得toolsbar不被遮擋656工具欄設(shè)置——工具欄功能設(shè)置常見的工具欄功能可以分為一下幾類:移動(dòng)、放大縮小、保存、刷新、選擇、提示框和十字線,且在設(shè)定功能后,會(huì)默認(rèn)激活所設(shè)置的第一個(gè)功能。666工具欄設(shè)置——工具欄功能設(shè)置移動(dòng)移動(dòng)功能又可分為全局移動(dòng)、沿x軸移動(dòng)和沿y軸移動(dòng)三種。由此可見,我們?cè)趖ool中設(shè)置的第一個(gè)功能為xpan,運(yùn)行后該功能是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論