數(shù)據(jù)可視化 課件 第6-8章 Plotly數(shù)據(jù)可視化進(jìn)階、Pyecharts入門(mén)、Pyecharts進(jìn)階_第1頁(yè)
數(shù)據(jù)可視化 課件 第6-8章 Plotly數(shù)據(jù)可視化進(jìn)階、Pyecharts入門(mén)、Pyecharts進(jìn)階_第2頁(yè)
數(shù)據(jù)可視化 課件 第6-8章 Plotly數(shù)據(jù)可視化進(jìn)階、Pyecharts入門(mén)、Pyecharts進(jìn)階_第3頁(yè)
數(shù)據(jù)可視化 課件 第6-8章 Plotly數(shù)據(jù)可視化進(jìn)階、Pyecharts入門(mén)、Pyecharts進(jìn)階_第4頁(yè)
數(shù)據(jù)可視化 課件 第6-8章 Plotly數(shù)據(jù)可視化進(jìn)階、Pyecharts入門(mén)、Pyecharts進(jìn)階_第5頁(yè)
已閱讀5頁(yè),還剩504頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1數(shù)據(jù)可視化第二章plotly基本圖形繪制12345線性圖條形圖餅圖甘特圖PlotlyExpress2線性圖1.31線性圖在plotly中對(duì)于線性圖而言,不是單一的折線圖這種,其中包括了散點(diǎn)圖,折線圖以及兩種結(jié)合的圖形。在plotly中一貫統(tǒng)稱為線形圖,在plotly中一般用go.scatter來(lái)繪制。線性圖41線性圖散點(diǎn)圖散點(diǎn)圖,顧名思義就是由一些散亂的點(diǎn)組成的圖表,這些點(diǎn)在哪個(gè)位置,是由其X值和Y值確定的。所以也叫做XY散點(diǎn)圖。而這些散落的點(diǎn)經(jīng)過(guò)散點(diǎn)圖描繪之后有的時(shí)候可以反映變量之間的相互關(guān)系。在plotly中一般用go.scatter命令來(lái)繪制,而這個(gè)函數(shù)對(duì)參數(shù)的封裝往往采用的就是復(fù)合字典賦值參數(shù)。51線性圖散點(diǎn)圖中scatter的常用的參數(shù)如下:1.mode:圖形格式,這個(gè)決定包括lines、markers、lines+markers等,但散點(diǎn)圖一般指定的是markers.2.x,y:圖像上的點(diǎn)的坐標(biāo),設(shè)置x軸,y軸的坐標(biāo)數(shù)據(jù)3.opacity:透明度,取值范圍0~14.markes:指定點(diǎn)的顏色,大小以及樣式等相關(guān)參數(shù),采用復(fù)合字典賦值的方法,其中有size,colors,symbol.symbol是設(shè)置點(diǎn)的樣式。5.name:指定的這條軌跡的名稱61線性圖準(zhǔn)備工作71線性圖81線性圖散點(diǎn)圖91線性圖散點(diǎn)圖點(diǎn)的基本設(shè)置101線性圖散點(diǎn)圖每個(gè)點(diǎn)的基本設(shè)置symbol參數(shù)賦值為一個(gè)數(shù)值也可以賦值為一個(gè)列表,而用列表的話就是對(duì)每個(gè)點(diǎn)可以選擇不同的樣式,但列表元素個(gè)數(shù)要與點(diǎn)的個(gè)數(shù)一致。111線性圖氣泡圖氣泡圖可用于展示三個(gè)變量之間的關(guān)系。它與散點(diǎn)圖類似,繪制時(shí)將一個(gè)變量放在橫軸,另一個(gè)變量放在縱軸,而第三個(gè)變量則用氣泡的大小來(lái)表示。排列在工作表的列中的數(shù)據(jù)(第一列中列出x值,在相鄰列中列出相應(yīng)的y值和氣泡大小的值)可以繪制在氣泡圖中。氣泡圖與散點(diǎn)圖相似,但氣泡圖一般反映三維的數(shù)據(jù),也可以用于思維數(shù)據(jù),而散點(diǎn)圖一般常用于二維數(shù)據(jù)。在氣泡圖中往往用氣泡的大小來(lái)作為第三個(gè)維度,而在四維氣泡圖中,一般用透明度,顏色等因素來(lái)表示第四維度的數(shù)據(jù)。在plotly中還是用go.scatter()來(lái)繪制氣泡圖,121線性圖三維氣泡圖131線性圖四維氣泡圖表示方法一141線性圖四維氣泡圖表示方法二151線性圖在plotly中還提供一個(gè)plotly.express,這個(gè)是plotly中一個(gè)簡(jiǎn)易操作的高級(jí)界面,可對(duì)“整潔”數(shù)據(jù)進(jìn)行操作并生成易于樣式化的圖形。以官網(wǎng)的一個(gè)示例給大家展示一下它的效果。161線性圖折線圖折線圖也稱線圖,折線圖是用直線段將各數(shù)據(jù)點(diǎn)連接起來(lái)而組成的圖形,以折線方式顯示數(shù)據(jù)的變化趨勢(shì)。折線圖可以顯示隨時(shí)間(根據(jù)常用比例設(shè)置)而變化的連續(xù)數(shù)據(jù),因此非常適用于顯示在相等時(shí)間間隔下數(shù)據(jù)的趨勢(shì)。在折線圖中,類別數(shù)據(jù)沿水平軸均勻分布,所有值數(shù)據(jù)沿垂直軸均勻分布。171線性圖折線圖中scatter的常用的參數(shù)如下:1.x,y:設(shè)置x,y軸坐標(biāo)數(shù)據(jù)2.mode:圖形格式,lines,markers,text,也可以用lines+markers3.name:線圖名稱4.opacity:透明度參數(shù),取值范圍為0~15.line:線條的設(shè)置,包括寬度,顏色格式6.markers:點(diǎn)的格式,設(shè)置顏色,大小,格式等181線性圖折線圖示例1191線性圖線圖結(jié)合201線性圖雙折線21條形圖2.222條形圖柱狀圖也稱條形圖,是一種以長(zhǎng)方形的長(zhǎng)度為變量的統(tǒng)計(jì)圖表。長(zhǎng)條圖用來(lái)比較兩個(gè)或以上的價(jià)值(不同時(shí)間或者不同條件),只有一個(gè)變量,通常利用于較小的數(shù)據(jù)集分析。長(zhǎng)條圖亦可橫向排列,或用多維方式表達(dá)。有水平條形圖,基本柱狀圖,多組柱狀圖,層疊柱狀圖,瀑布柱狀圖等,在plotly這個(gè)第三方庫(kù)當(dāng)中,一般用go.Bar()來(lái)繪制條形圖232條形圖Bar()函數(shù)一些常用參數(shù):1.base:柱狀圖起始的參數(shù)2.dx,dy:x,y坐標(biāo)的步進(jìn)值,默認(rèn)為13.Marker:數(shù)據(jù)節(jié)點(diǎn),包括顏色格式等參數(shù),其中包括外圍的邊框線設(shè)置4.orientation:圖形顯示參數(shù),包括‘v’(垂直模式)和‘h’(水平模式)5.Name:繪制的軌跡名稱參數(shù)6.Textfont:文本字體參數(shù),包括字體名稱,顏色,大小等7.Text:每個(gè)柱狀圖的文本元素8.Textposition:文本元素的位置參數(shù),包括:

"inside"|"outside"|"auto"|"none";9.visible:布爾變量,切換圖形顯示開(kāi)關(guān);10.Opacity:柱狀的透明度11.Textangle:設(shè)置文本的傾斜角度242條形圖柱狀圖常用參數(shù):1.barmode:設(shè)置相同坐標(biāo)的條形圖位置。包括:stack(疊加)、group(并列)、overlay(覆蓋)、relative(相對(duì));2.bargroupgap:設(shè)置相同位置條形圖之間的間隙,范圍:0-1;3.bargap:設(shè)置相鄰位置條形圖之間的間隙,范圍:0-1;4.orientation:圖形顯示方向參數(shù),包括:v(垂直模式)和h(水平模式);252條形圖準(zhǔn)備工作262條形圖柱狀圖272條形圖柱狀簇柱狀簇就是多個(gè)基本柱狀結(jié)合而成的,比如要比較兩個(gè)公司一周內(nèi)每天銷售額的差異,可以利用柱狀簇來(lái)進(jìn)行展示和分析,這種柱狀簇也可單一的分析某一個(gè)類別不同時(shí)間的變化,也可以比較不同類別在同一時(shí)間上進(jìn)行的比較。282條形圖柱狀簇292條形圖層疊柱狀圖層疊柱狀圖其實(shí)類似柱狀簇,只不過(guò)相當(dāng)把多個(gè)柱狀整合為一個(gè),以累加的方式進(jìn)行疊加,最后轉(zhuǎn)為基本柱狀圖的形式。唯一和基本柱狀圖的不同是,它是多個(gè)柱體的累加。常用來(lái)反映一些金融股票方面在不同形式的資產(chǎn)和負(fù)債的分布。302條形圖層疊柱狀圖312條形圖水平條形圖水平條形圖其實(shí)和繪制柱狀圖類似,只不過(guò)就是對(duì)Bar()中的orientation進(jìn)行設(shè)置,設(shè)置顯示為水平就可,其他和繪制上面的柱狀圖,柱狀簇,層疊柱狀圖類似,下面大家可以通過(guò)這幾個(gè)例子進(jìn)行學(xué)習(xí)。322條形圖水平條形圖332條形圖水平條形圖342條形圖瀑布圖瀑布圖是一種比較常用的柱狀圖,顯示正值(收入)和負(fù)值(支出)對(duì)總量的貢獻(xiàn)來(lái)顯示結(jié)果累積的過(guò)程。從這個(gè)案例我們可以看出,瀑布圖采用絕對(duì)值與相對(duì)值結(jié)合的方式,表達(dá)多個(gè)特定數(shù)值之間的數(shù)量變化關(guān)系。這種由麥肯錫顧問(wèn)公司所獨(dú)創(chuàng)的圖表類型,因?yàn)樾嗡破俨剂魉环Q之為瀑布圖。瀑布圖具有自上而下的流暢效果,也可以稱為階梯圖或橋圖,在企業(yè)經(jīng)營(yíng)分析、財(cái)務(wù)分析中使用較多,用以表示企業(yè)成本的構(gòu)成、變化等情況。瀑布圖可以很好的反映數(shù)據(jù)在不同時(shí)期或受不同因素影響的程度及結(jié)果,還可以直觀反映出數(shù)據(jù)的增減變化,在工作表中非常實(shí)用。352條形圖瀑布圖36餅圖3.373餅圖餅圖,或稱餅狀圖,是一個(gè)劃分為幾個(gè)扇形的圓形統(tǒng)計(jì)圖表,用于描述量、頻率或百分比之間的相對(duì)關(guān)系。在餅圖中,每個(gè)扇區(qū)的弧長(zhǎng)(以及圓心角和面積)大小為其所表示的數(shù)量的比例。這些扇區(qū)合在一起剛好是一個(gè)完全的圓形。顧名思義,這些扇區(qū)拼成了一個(gè)切開(kāi)的餅形圖案。在plotly

中一般用pie()函數(shù)來(lái)繪制餅圖,這里的餅圖包括基本餅圖和環(huán)狀餅圖。餅圖383餅圖pie()函數(shù)常用參數(shù):1.values:每個(gè)扇區(qū)的數(shù)值大??;2.labels:列表,餅圖中每一個(gè)扇區(qū)的文本標(biāo)簽;3.hole:設(shè)置環(huán)形餅圖空白內(nèi)徑的半徑,取值0~1。默認(rèn)值為0,參數(shù)是與外徑的比值;4.hoverinfo:當(dāng)用戶與圖表交互時(shí),鼠標(biāo)指針顯示的參數(shù),包括如下任何組合:"label"、"text"、"value"、"percent","name"、"all"、"none"或"skip",組合時(shí)用"+"拼接,默認(rèn)為"all"。若設(shè)置了“none”或“skip”,則鼠標(biāo)懸停時(shí)不會(huì)顯示任何信息。但是,如果是設(shè)置了“none”,則仍會(huì)觸發(fā)單擊和懸停事件;5.pull:列表,元素為0~1之間的數(shù)值,默認(rèn)為0,用于設(shè)置各個(gè)扇區(qū)突出顯示的本例393餅圖pie()函數(shù)常用參數(shù):6.sort:布爾變量,是否進(jìn)行扇區(qū)排序7.rotation:扇區(qū)旋轉(zhuǎn)角度,范圍是0~360,默認(rèn)值為08.direction:設(shè)置餅圖方向。clockwise表示:順時(shí)針、counterclockwise(默認(rèn))表示:逆時(shí)針9.name:名稱參數(shù)10.opacity:透明度參數(shù),范圍是0-111.domain:范圍,設(shè)置各個(gè)扇形的大小12.marker:數(shù)據(jù)節(jié)點(diǎn)參數(shù),包括大小顏色格式等403餅圖基本餅圖基本餅圖是統(tǒng)計(jì)分析中的一種常用的圖表之一,常用來(lái)描繪某一個(gè)類別在整體中的占比,比如最常見(jiàn)的性別比例,這個(gè)是很典型的示例,通過(guò)餅圖的面積能夠很好的反映占比情況。在plotly中一般用pie()函數(shù)。413餅圖準(zhǔn)備工作423餅圖基本餅圖1433餅圖基本餅圖2443餅圖基本餅圖3453餅圖環(huán)形餅圖環(huán)形圖與餅圖類似,但又有區(qū)別。環(huán)形圖中間有一個(gè)“空洞”,每個(gè)樣本用一個(gè)環(huán)來(lái)表示,樣本中的每一部分?jǐn)?shù)據(jù)用環(huán)中的一段表示。因此環(huán)形圖可顯示多個(gè)樣本各部分所占的相應(yīng)比例,從而有利于構(gòu)成的比較研究。通俗的來(lái)講環(huán)形餅圖就是圖表中的‘甜甜圈’,其實(shí)環(huán)形餅圖和基本餅圖在繪制中是類似的,不過(guò)環(huán)形餅圖相對(duì)餅圖來(lái)說(shuō)就多一個(gè)空洞形式。463餅圖環(huán)形餅圖47甘特圖4.484甘特圖甘特圖又稱為橫道圖,通過(guò)條形來(lái)顯示項(xiàng)目的進(jìn)度、時(shí)間的安排等與時(shí)間相關(guān)的情況。甘特圖能夠很直觀反映項(xiàng)目安排以及項(xiàng)目進(jìn)展這些內(nèi)容。在plotly這個(gè)第三方庫(kù)中,用的函數(shù)是plotly.figure_factory

中的create_gantt函數(shù),通過(guò)參數(shù)事件Task,開(kāi)始Start,結(jié)束Finish的時(shí)間的數(shù)據(jù)來(lái)繪制甘特圖。甘特圖494甘特圖create_gantt函數(shù)常用參數(shù):1.df:任務(wù)名稱起止時(shí)間2.colors:每個(gè)任務(wù)的顏色3.index_col:索引方式,常用的有數(shù)字索引和類別索引、4.show_colorbar:是否顯示圖例,True和False5.showgrid_x,showgrid_y:設(shè)置是否顯示橫縱坐標(biāo)軸6.title:甘特圖的名稱7.bar_width:項(xiàng)目條的寬度504甘特圖514甘特圖524甘特圖數(shù)字索引數(shù)字索引簡(jiǎn)單點(diǎn)的來(lái)說(shuō)就是將傳入的數(shù)據(jù)按照數(shù)字索引方式對(duì)任務(wù)進(jìn)行分類,這個(gè)數(shù)字是每個(gè)項(xiàng)目的進(jìn)度,具有相同索引值的條形將會(huì)呈現(xiàn)相同的顏色,也可以說(shuō)通過(guò)顏色來(lái)判斷項(xiàng)目完成的進(jìn)度。534甘特圖數(shù)字索引544甘特圖類別索引除了數(shù)字索引這種方式,還有一種比較常用的索引方式是類別索引,就是將所有的項(xiàng)目分為未完成,完成,進(jìn)行中這三種類別,通過(guò)不同顏色對(duì)這些類別進(jìn)行分類,可以直觀的分析項(xiàng)目進(jìn)展,及時(shí)的對(duì)項(xiàng)目進(jìn)行重新安排和調(diào)整。554甘特圖類別索引56PlotlyExpress5.575PlotlyExpressPlotlyExpress是Plotly.py的高級(jí)封裝,它為復(fù)雜的圖表提供了一個(gè)簡(jiǎn)單的語(yǔ)法。這個(gè)是在plotly基礎(chǔ)上對(duì)它進(jìn)行更高級(jí)的封裝,簡(jiǎn)化了plotly繪制圖表命令,讓繪制圖表更加的簡(jiǎn)單。在plotly4.0版本出現(xiàn)后,plotlyexpress屬于plotly這個(gè)繪圖庫(kù)的一部分,在每個(gè)PlotlyExpress函數(shù)都會(huì)返回一個(gè)graph_objects.Figure對(duì)象,該對(duì)象的data和layout已根據(jù)提供的參數(shù)進(jìn)行了預(yù)填充。而且它還在內(nèi)部封裝一些默認(rèn)的數(shù)據(jù)集,方便初學(xué)者學(xué)習(xí),是一個(gè)很方便的繪圖庫(kù)。PlotlyExpress585PlotlyExpress內(nèi)置數(shù)據(jù)集Plotlyexpress中提供了幾個(gè)常用來(lái)做統(tǒng)計(jì)分析的數(shù)據(jù)集:gapminder,wind,iris,tips,election,carshare,tips這幾個(gè)數(shù)據(jù)集,類似python的另一個(gè)繪圖庫(kù)Seaborn,通過(guò)相應(yīng)的命令導(dǎo)入,然后數(shù)據(jù)框格式的數(shù)據(jù)。595PlotlyExpress內(nèi)置數(shù)據(jù)集605PlotlyExpress導(dǎo)入數(shù)據(jù)集615PlotlyExpress主題調(diào)色板在plotlyexpress中主題是指控制圖形范圍的設(shè)置,如邊距、字體、背景顏色、刻度定位等??梢允褂媚0鍏?shù)應(yīng)用任何命名的主題或主題對(duì)象:有三個(gè)內(nèi)置的Plotly主題可以使用,分別是plotly,plotly_white和plotly_dark。是通過(guò)template這個(gè)參數(shù)來(lái)改變。PlotlyExpress將使用活動(dòng)模板的layout.colorway屬性中的顏色順序,默認(rèn)活動(dòng)模板是plotly使用plotly顏色順序的顏色。但是,可以從px.colors.qualitative模塊中選擇以下任何內(nèi)置定性顏色序列,或者定義自己的顏色序列。625PlotlyExpress調(diào)色板635PlotlyExpress案例示范以plotlyexpress中tips數(shù)據(jù)集為例。total_bill:總費(fèi)用tip:小費(fèi) Sex:性別Smoker:是否吸煙 Day:就餐星期中哪一天Time:就餐的時(shí)間Size:就餐的人數(shù)645PlotlyExpress總消費(fèi)和小費(fèi),性別之間的關(guān)系655PlotlyExpress總消費(fèi)和小費(fèi),性別之間的關(guān)系665PlotlyExpress總消費(fèi)和小費(fèi),性別之間的關(guān)系675PlotlyExpress小提琴圖提琴圖是一種用于顯示數(shù)據(jù)分布及其概率密度。這種圖表結(jié)合了箱形圖和密度圖的特征,主要用來(lái)顯示數(shù)據(jù)的分布形狀。中間的黑色粗條表示四分位數(shù)范圍,從其延伸的幼細(xì)黑線代表95%置信區(qū)間,而白點(diǎn)則為中位數(shù)。在統(tǒng)計(jì)分析中,小提琴圖是一種很常用的圖形,在plotlyexpress中也提供了這種圖的繪制,用的是violin()函數(shù)。685PlotlyExpressviolin()函數(shù)常用參數(shù):1.dataframe:需要分析的數(shù)據(jù)(數(shù)據(jù)框形式)2.x:選取某一列,小提琴也沿x軸顯示3.y:選取某一列,默認(rèn)小提琴也沿y軸顯示4.color:分配的顏色5.box:布爾值–如果為T(mén)rue,則在小提琴內(nèi)部繪制框。6.orientation

:–

'h'水平或'v'垂直之一695PlotlyExpressviolin()函數(shù)常用參數(shù):7.points

:outliers','suspectedoutliers','all',或False。如果為

'outliers',則僅顯示外部的采樣點(diǎn)。如果顯示'suspectedoutliers',則顯示所有離群點(diǎn),并用標(biāo)記突出顯示小于4*Q1-3*Q3或大于4*Q3-3*Q1的點(diǎn)'outliercolor'。如果為'outliers',則僅顯示外部的采樣點(diǎn)。如果為'all',則顯示所有采樣點(diǎn)。如果為False,則不會(huì)顯示任何采樣點(diǎn),并且晶須會(huì)延伸到整個(gè)采樣范圍。8.title:圖表的標(biāo)題9.violinmode

:'group'或'overlay'在'overlay'模式下,小提琴彼此位于頂部。在'group'模式下,小提琴彼此并排放置705PlotlyExpress小提琴圖715PlotlyExpress三維小提琴圖725PlotlyExpress重疊小提琴圖735PlotlyExpress三維小提琴圖745PlotlyExpress漏斗圖漏斗圖類似倒立的金字塔結(jié)構(gòu),常用來(lái)分析很多業(yè)務(wù)以及相關(guān)占比的內(nèi)容,漏斗圖適用于業(yè)務(wù)流程比較規(guī)范、周期長(zhǎng)、環(huán)節(jié)多的流程分析,通過(guò)漏斗各環(huán)節(jié)業(yè)務(wù)數(shù)據(jù)的比較,能夠直觀地發(fā)現(xiàn)和說(shuō)明問(wèn)題所在。在plotlyexpress也提供了這種圖像的繪制。繪制漏斗圖的函數(shù)是funnel()函數(shù)。755PlotlyExpressfunnel()函數(shù)常用參數(shù):1.data:繪制漏斗圖所需的數(shù)據(jù)2.x:漏斗每層的數(shù)值3.y:漏斗每層的名稱4.opacity:透明度5.color_discrete_sequence:顏色序列選取6.title:標(biāo)題765PlotlyExpress雙坐標(biāo)軸示例1775PlotlyExpress雙坐標(biāo)軸示例1785PlotlyExpress雙坐標(biāo)軸示例1795PlotlyExpress雙坐標(biāo)軸示例1805PlotlyExpress雙坐標(biāo)軸示例18182數(shù)據(jù)可視化第一章Pyecharts的基本使用第二章Pyecharts的進(jìn)階使用第三章…第四章目錄Contents…第五章緒論83第二章Pyecharts的基本使用12345Pyecharts簡(jiǎn)介準(zhǔn)備工作統(tǒng)計(jì)圖(直角坐標(biāo)系)基本圖表地理圖表6本章小結(jié)84Pyecharts簡(jiǎn)介1.851Pyecharts簡(jiǎn)介提及可視化立馬能夠想到MATLAB這款強(qiáng)大的軟件,MATLAB是一款用于數(shù)據(jù)分析、數(shù)值計(jì)、仿真等的編程商業(yè)數(shù)學(xué)軟件,它同時(shí)也是可視化領(lǐng)域的佼佼者。Echarts在可視化領(lǐng)域也有著舉足輕重的地位,Echarts(EnterpriseCharts)是一個(gè)商業(yè)級(jí)數(shù)據(jù)圖表,由百度開(kāi)源的純Javascript圖表庫(kù),可以流暢的運(yùn)行在PC和移動(dòng)設(shè)備上,兼容絕大部分的瀏覽器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底層依賴輕量級(jí)的Canvas庫(kù)ZRender,相較于其他的可視化工具來(lái)說(shuō),它在交互性上占據(jù)了絕對(duì)的優(yōu)勢(shì)。Echarts有開(kāi)源、圖表類型豐富、高交互性、動(dòng)態(tài)數(shù)據(jù)、巡禮特效等特性大大提升了用戶體驗(yàn)。2018年全球著名開(kāi)源社區(qū)Apache基金會(huì)宣布全票通過(guò)進(jìn)入Apache孵化器。861Pyecharts簡(jiǎn)介Echarts對(duì)使用者十分友好,Python語(yǔ)言又風(fēng)靡一時(shí),Echarts與Python的結(jié)合就產(chǎn)生了Pyecharts。Pyecharts分為v0.5.X和v1版本,兩者不兼容,需要注意的是,v0.5.X可以在python2.7以及3.4以上版本中使用,而v1及以上版本的pyecharts僅能在python3.6及以上版本中運(yùn)行。本書(shū)基于v1.7.1版本對(duì)Pyecharts展開(kāi)介紹。在開(kāi)始介紹pyecharts庫(kù)之前,我們需要準(zhǔn)備python環(huán)境以及第三方包的安裝。87準(zhǔn)備工作2.882準(zhǔn)備工作pyecharts是一個(gè)Python的第三方庫(kù),完美結(jié)合了Echarts的可視化優(yōu)勢(shì)以及Python語(yǔ)言在數(shù)據(jù)分析上的優(yōu)勢(shì)。在使用pyecharts之前,一定要先安裝python,由于我們將會(huì)使用v1.7.1版本的pyechats,因此我們需要安裝python3.6的版本或者更高版本。本章將從安裝pyecharts第三方庫(kù)開(kāi)始介紹,python的安裝過(guò)程將略過(guò)。892準(zhǔn)備工作——安裝步驟1.pip安裝首先用快捷鍵Win+R打開(kāi)運(yùn)行程序,并在出現(xiàn)的輸入框中輸入“cmd”,點(diǎn)擊確定。圖1.1cmd展示圖902準(zhǔn)備工作——安裝步驟在出現(xiàn)的命令行窗口中輸入以下代碼并回車即可安裝:圖1.2安裝pyecharts示意圖如果使用pip安裝報(bào)錯(cuò),可以嘗試將pip替換為pip3或者conda。912準(zhǔn)備工作——安裝步驟2.conda工具安裝使用這種方法進(jìn)行擴(kuò)展庫(kù)安裝的前提下是您的電腦上安裝了Anaconda編譯器。首先打開(kāi)anaconda,出現(xiàn)下面的界面:圖1.3Anaconda首頁(yè)示意圖922準(zhǔn)備工作——安裝步驟先點(diǎn)擊左邊的“Environment”,接著點(diǎn)擊右上方的下拉框,選擇“uninstall”或者“all”,在輸入框中輸入包名進(jìn)行搜索,找到想要的包并點(diǎn)擊安裝即可。使用anaconda的優(yōu)勢(shì)在于可以用圖形化界面進(jìn)行第三方庫(kù)的安裝以及多個(gè)python環(huán)境的創(chuàng)建與管理,當(dāng)然anaconda也支持命令行的管理。圖1.4Environment界面安裝庫(kù)示意圖932準(zhǔn)備工作——安裝步驟3.whl安裝當(dāng)上述兩種方法都報(bào)錯(cuò)之后,再選擇該種安裝方法。首先需要在網(wǎng)址/project/pyecharts/#files中下載whl離線文件,接著打開(kāi)cmd命令行,輸入如下命令即可完成安裝:942準(zhǔn)備工作——安裝步驟4.源碼安裝首先需要從GitHub社區(qū)克隆相應(yīng)的項(xiàng)目源碼:gitclone/pyecharts/pyecharts.git接著,進(jìn)入pyecharts文件夾,使用pip進(jìn)行安裝:$cdpyecharts$pipinstall-rrequirements.txt$pythonsetup.pyinstall本小節(jié)共介紹了4種方式進(jìn)行安裝pyecharts包,一般來(lái)說(shuō),在cmd中使用pip工具即可完成安裝,上述方法不需完全掌握,只需完成安裝即可。952準(zhǔn)備工作——繪制第一個(gè)圖表在進(jìn)行系統(tǒng)學(xué)習(xí)pyecharts之前,我們先繪制一個(gè)最簡(jiǎn)單的圖表來(lái)體驗(yàn)一下,這相當(dāng)于學(xué)習(xí)編程語(yǔ)言時(shí)的HelloWorld。在python中輸入以下代碼:962準(zhǔn)備工作——繪制第一個(gè)圖表上述代碼將返回一個(gè)路徑,即生成的圖表保存的路徑。找到生成的html文件并用瀏覽器打開(kāi)之后,可以看到如下圖:圖1.5第一張圖的結(jié)果972準(zhǔn)備工作——繪制第一個(gè)圖表這就是第一個(gè)繪制好的圖,可以在該圖上嘗試移動(dòng)鼠標(biāo)或點(diǎn)擊等操作,這時(shí)我們會(huì)發(fā)現(xiàn)移動(dòng)鼠標(biāo)時(shí)將出現(xiàn)一個(gè)提示框,上面標(biāo)注了有關(guān)鼠標(biāo)所在區(qū)域的數(shù)據(jù)信息,并且圖的展示會(huì)結(jié)合一定的動(dòng)畫(huà),一個(gè)簡(jiǎn)單的圖表就將pyecharts繪圖的優(yōu)勢(shì)體現(xiàn)的淋漓盡致?,F(xiàn)在我們來(lái)仔細(xì)分析一下代碼,第一行導(dǎo)入的Bar是用于繪制柱狀圖專用的類;第二行導(dǎo)入的是pyecharts庫(kù)中內(nèi)置的隨機(jī)數(shù)據(jù)集,后續(xù)很多示例中所使用的數(shù)據(jù)都會(huì)直接使用Faker模塊來(lái)快速生成;完成模塊的導(dǎo)入之后,首先實(shí)例化Bar這個(gè)類,使用Bar()就可以完成實(shí)例化操作;第四行傳入x軸的數(shù)據(jù);第五行傳入y軸的數(shù)據(jù);第六行則是將柱狀圖完成繪制并存儲(chǔ)在文件中,這樣可以永久保存剛剛繪制好的圖。982準(zhǔn)備工作——繪制第一個(gè)圖表注意:您繪制的圖在數(shù)據(jù)上可能會(huì)與上圖不完全一致,因?yàn)榇a中使用了Faker模塊生成數(shù)據(jù),這具有一定的隨機(jī)性??偨Y(jié)一下我們實(shí)現(xiàn)的第一個(gè)代碼,該代碼可以抽象為下述流程:圖1.6代碼流程圖后續(xù)繪制圖表的流程都是參照上述流程,有些圖可能會(huì)根據(jù)復(fù)雜程度在某些環(huán)節(jié)稍微繁瑣一些,但是萬(wàn)變不離其宗,記住上述的流程,大部分的圖都能快速繪制出來(lái)。992準(zhǔn)備工作——鏈?zhǔn)秸{(diào)用上一小節(jié)中我們簡(jiǎn)單的繪畫(huà)了一個(gè)柱狀圖,現(xiàn)在我們將上面的代碼在不改變實(shí)現(xiàn)效果的前提下對(duì)代碼進(jìn)行改造:1002準(zhǔn)備工作——鏈?zhǔn)秸{(diào)用仔細(xì)對(duì)比本節(jié)代碼和上節(jié)代碼,可以發(fā)現(xiàn)這次代碼中構(gòu)造了一個(gè)func_temp函數(shù),該函數(shù)的作用就是在構(gòu)造一個(gè)具體的柱狀圖,在這里構(gòu)造函數(shù)是為了在視覺(jué)上增加可讀性以及代碼的復(fù)用和移植。更為重要的是,在實(shí)例化Bar類之后并沒(méi)有立即將其賦值到一個(gè)變量中,而是直接用”.”繼續(xù)往其中傳入數(shù)據(jù)或更改組件樣式等等操作,雖然代碼中的”c=(…)”共占5行,其實(shí)完全可以看作一行,這樣的寫(xiě)法與上小節(jié)中的代碼實(shí)現(xiàn)的效果完全一樣,但是在外觀上鏈?zhǔn)秸{(diào)用更為簡(jiǎn)潔,增加了代碼的可讀性。在平時(shí)使用pyecharts時(shí)并不強(qiáng)求使用鏈?zhǔn)秸{(diào)用,但是我們需要知道的是應(yīng)該如何閱讀這種寫(xiě)法的代碼,本書(shū)后面都會(huì)采用鏈?zhǔn)秸{(diào)用的寫(xiě)法來(lái)進(jìn)行舉例。1012準(zhǔn)備工作——使用主題pyecharts中預(yù)先搭配了10余種主題供我們使用。對(duì)于主題的概念,我們可以理解為手機(jī)主題,作用就是讓我們繪制出的圖有更為美觀或與眾不同的配色,在視覺(jué)上給人以美感。示范代碼:1022準(zhǔn)備工作——使用主題圖1.7PURPLE_PASSION主題樣式結(jié)果如下:1032準(zhǔn)備工作——使用主題代碼解釋:主題風(fēng)格的設(shè)置是在實(shí)例化中的初始化參數(shù)中進(jìn)行設(shè)置的,本例中使用的是PURPLE_PASSION的主題。主題類型有:WHITE、LIGHT、DARK、CHALK、ESSOS、INFOGRAPHIC、MACARONS、PURPLE_PASSION、ROMA、ROMANTIC、SHINE、VINTAGE、WALDEN、WESTEROS、WONDERLAND等15種,其中WHITE主題是默認(rèn)主題。由于篇幅原因,這里不一一進(jìn)行展示,讀者可以自行更改主題樣式來(lái)查看效果。1042準(zhǔn)備工作——展示圖表根據(jù)我們現(xiàn)在所接觸過(guò)的代碼,可以知道有關(guān)保存的函數(shù)有render(),但除此之外還有很多其他的函數(shù)可供使用,這里將分為3個(gè)小塊來(lái)進(jìn)行介紹。1.render()該函數(shù)的使用方式不再贅述,它所包含的參數(shù)解釋如下:path:生成文件的存儲(chǔ)路徑,默認(rèn)值為“render.html”。template_name:使用的模板路徑,默認(rèn)值為“simple_chart.html”。env:配置各類環(huán)境參數(shù)。1052準(zhǔn)備工作——展示圖表2.render_notebook()該函數(shù)與render()的使用方式相同,但該函數(shù)中沒(méi)有參數(shù),需要注意的是,render_notebook()函數(shù)只能在jupyternotebook中使用,作用是將構(gòu)造的圖渲染到j(luò)upyternotebook中,同時(shí)可以支持實(shí)時(shí)交互操作,更方便的查看與調(diào)試代碼。在本書(shū)中后續(xù)的代碼都在jupyternotebook環(huán)境中進(jìn)行操作。若在您的實(shí)驗(yàn)機(jī)上沒(méi)有jupyternotebook,可以將實(shí)例中的render_notebook()函數(shù)全部換為render()函數(shù),生成html文件并使用瀏覽器查看,最終實(shí)現(xiàn)的效果是一樣的。1062準(zhǔn)備工作——展示圖表3.make_snapshot該函數(shù)用于生成圖片,需要注意的是,這種保存方式將圖表渲染成圖片,因此無(wú)法進(jìn)行實(shí)時(shí)交互操作,但是報(bào)告或者論文中的圖都是以圖片形式進(jìn)行展示的,學(xué)習(xí)如何將圖表靜態(tài)渲染到圖片是有必要的。首先需要額外安裝第三方庫(kù):第三方包前提條件說(shuō)明snapshot-selenium先配置browserdriver,瀏覽器推薦使用chromepyecharts+selenium渲染圖片snapshot-phantomjs先安裝phantomjspyecharts+phantomjs渲染圖片snapshot-pyppeteer先安裝pyppeteer和chromiumpyecharts+pyppeteer渲染圖片,安裝完成后建議執(zhí)行chromium安裝命令:pyppeteer-install表格

1.1make_snapshot相關(guān)的第三方庫(kù)上述三個(gè)包只需安裝一個(gè)即可,筆者使用的電腦中預(yù)先有selenium環(huán)境,因此直接安裝的snapshot-selenium包(使用pip插件進(jìn)行安裝)。1072準(zhǔn)備工作——展示圖表下面對(duì)make_snapshot()函數(shù)的參數(shù)進(jìn)行介紹:defmake_snapshot()engine:渲染引擎,可選selenium或者phantomjs。file_name:傳入HTML文件路徑。output_name:輸出圖片路徑。delay:設(shè)置延遲時(shí)間,避免出現(xiàn)未渲染完就生成圖片從而造成圖片的不完整。pixel_ratio:像素比例,用于調(diào)節(jié)圖片質(zhì)量。is_remove_html:渲染完圖片是否刪除原HTML文件,值類型為bool類型,默認(rèn)值為False。browser:瀏覽器類型。1082準(zhǔn)備工作——展示圖表渲染為圖片的代碼如下:注意:上述代碼是從snapshot-selenium、snapshot-phantomjs、snapshot-pypeteer中任意選一個(gè)安裝成功的包中導(dǎo)入snapshot,再使用make_snapshot()函數(shù)進(jìn)行渲染圖片操作。109統(tǒng)計(jì)圖(直角坐標(biāo)系)3.1103統(tǒng)計(jì)圖(直角坐標(biāo)系)——共有函數(shù)介紹經(jīng)過(guò)上一節(jié)的介紹,我們知道pyecharts在繪制圖形時(shí)使用不同功能的函數(shù)一層一層往上添加數(shù)據(jù)或者組件。在有直角坐標(biāo)系的圖表中有一部分的函數(shù)是通用的,這里一起進(jìn)行介紹,后面在講具體的圖時(shí)不再進(jìn)行介紹。1.extend_axis()該函數(shù)用于擴(kuò)展x軸或者y軸,函數(shù)以及參數(shù)說(shuō)明如下:defextend_axis()xaxis_data:擴(kuò)展X軸的數(shù)據(jù)項(xiàng)。xaxis:擴(kuò)展x軸配置,使用global_options.AxisOpts()函數(shù)進(jìn)行設(shè)置。yaxis:擴(kuò)展y軸配置,使用global_options.AxisOpts()函數(shù)進(jìn)行配置。1113統(tǒng)計(jì)圖(直角坐標(biāo)系)——共有函數(shù)介紹2.add_xaxis()該函數(shù)用于增加x軸數(shù)據(jù),函數(shù)以及參數(shù)說(shuō)明如下:defadd_xaxis()xaxis_data:x軸數(shù)據(jù)序列,一般使用列表結(jié)構(gòu)。3.reversal_axis()該函數(shù)用于交換x軸與y軸的數(shù)據(jù),該函數(shù)沒(méi)有參數(shù):defreversal_axis()1123統(tǒng)計(jì)圖(直角坐標(biāo)系)——共有函數(shù)介紹4.

add_dataset()該函數(shù)用于添加dataset組件,函數(shù)與參數(shù)說(shuō)明如下:defadd_dataset()source:原始數(shù)據(jù),一般是二維表。dimensions:定義series.data或dataset.source每個(gè)維度的信息。source_header:說(shuō)明第一行/列是否是列/行名,值類型為bool類型。值為true時(shí),即第一行/列是列/行名;值為false,即第一行為數(shù)據(jù)。1133統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖柱狀圖(BarChart)是一種以長(zhǎng)方形的長(zhǎng)度具象表現(xiàn)變量的大小的圖。柱狀圖常常用于較小的數(shù)據(jù)集分析,分析某一個(gè)變量在不同條件或時(shí)間下的值的變化。下面先介紹與柱狀圖Bar類相關(guān)的函數(shù):1.

add_yaxis()該函數(shù)的作用是增加柱狀圖的系列數(shù)據(jù),函數(shù)與參數(shù)說(shuō)明如下:defadd_yaxis()series_name:設(shè)置系列名稱,系列名稱會(huì)在提示框以及圖例中顯示。y_axis:傳入系列數(shù)據(jù)。is_selected:是否選中圖例,值類型為bool類型,默認(rèn)是True,在圖剛完成時(shí)不會(huì)顯示設(shè)置為False的系列數(shù)據(jù),可以手動(dòng)點(diǎn)擊圖例來(lái)調(diào)整數(shù)據(jù)的顯示。1143統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖xaxis_index:指定x軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)x軸的時(shí)候有用。yaxis_index:指定y軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)y軸的時(shí)候有用。color:設(shè)置系列l(wèi)abel的顏色。stack:數(shù)據(jù)堆疊,可以將相同類目軸的不同系列數(shù)據(jù)進(jìn)行堆疊顯示。category_gap:設(shè)置同一系列的柱間距離,默認(rèn)值為”20%”。gap:設(shè)置不同系列的柱間距離,值為字符串類型,值的大小為柱間空隙占比。label_opts:設(shè)置標(biāo)簽樣式,使用series_options.LabelOpts()進(jìn)行設(shè)置。markpoint_opts:設(shè)置標(biāo)記點(diǎn),使用series_options.MarkPointOpts()進(jìn)行設(shè)置。1153統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖markline_opts:設(shè)置標(biāo)記線,使用series_options.MarkLineOpts()進(jìn)行設(shè)置。tooltip_opts:設(shè)置提示框樣式,使用series_options.TooltipOpts()進(jìn)行設(shè)置。itemstyle_opts:設(shè)置圖元樣式,使用series_options.ItemStyleOpts()進(jìn)行設(shè)置。encode:定義data的哪個(gè)維度被編碼成什么。注意:gap和category_gap兩個(gè)參數(shù)一般都寫(xiě)在最后一個(gè)增加數(shù)據(jù)的add_yaxis()中,若是在不同的add_yaxis()中都設(shè)置了這兩個(gè)參數(shù),默認(rèn)為最后一次的設(shè)置起作用。1163統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖2.BarItem柱狀圖數(shù)據(jù)項(xiàng)該類用于設(shè)置柱狀圖的數(shù)據(jù),但一般在繪制柱狀圖時(shí)會(huì)使用列表或數(shù)組等序列數(shù)據(jù)結(jié)構(gòu),該類中的參數(shù)解釋如下:classBarItem()name:設(shè)置數(shù)據(jù)項(xiàng)的名稱。value:設(shè)置單個(gè)數(shù)據(jù)項(xiàng)的數(shù)值。label_opts:設(shè)置單個(gè)柱條文本的樣式,使用series_options.LabelOpts()進(jìn)行設(shè)置。itemstyle_opts:設(shè)置圖元樣式,使用series_options.ItemStyleOpts進(jìn)行設(shè)置。tooltip_opts:設(shè)置提示框組件樣式,使用series_options.TooltipOpts進(jìn)行設(shè)置。1173統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖例1-11183統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖結(jié)果展示:圖1.8簡(jiǎn)單柱狀圖效果展示1193統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖代碼解釋:首先用函數(shù)Bar()進(jìn)行實(shí)例化;接著對(duì)該實(shí)例化之后的對(duì)象用函數(shù)add_xaxis()添加x軸數(shù)據(jù);再利用函數(shù)add_yaxis()在該對(duì)象上添加y軸,從上述代碼中可以看見(jiàn)連續(xù)用了兩次add_yaxis()函數(shù),則表示增加了兩個(gè)系列的數(shù)據(jù),整個(gè)數(shù)據(jù)如表1.2所示;接著又用set_global_opts()函數(shù)對(duì)圖表的細(xì)節(jié)進(jìn)行設(shè)置,這里在參數(shù)title_opts處對(duì)圖表的標(biāo)題以及副標(biāo)題進(jìn)行了設(shè)置;最后返回整個(gè)鏈?zhǔn)酱a,一個(gè)畫(huà)柱形圖的函數(shù)就完成了。最后調(diào)用剛剛寫(xiě)好的bar1()函數(shù),并使用render_notebook()函數(shù)將畫(huà)好的圖表嵌入jupyternotebook中進(jìn)行實(shí)時(shí)顯示,到此大功告成。1203統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖表格1.2數(shù)據(jù)展示表格x河馬蟒蛇老虎大象兔子熊貓獅子系列11211101351069455129系列2431021392252311181213統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖例1-21223統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖結(jié)果展示:圖1.9多系列柱狀圖的結(jié)果展示本例中插入了兩組數(shù)據(jù),但一開(kāi)始呈現(xiàn)的數(shù)據(jù)卻只有一個(gè)系列,這是因?yàn)樵诘诙€(gè)add_yaxis()函數(shù)中將is_selected參數(shù)的值設(shè)置為了False。若想要查看系列2所對(duì)應(yīng)的柱狀圖,可以直接點(diǎn)擊圖上方的圖例,灰色的即為不顯示。1233統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖例1-31243統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖結(jié)果展示:圖1.10調(diào)整柱狀圖間隙結(jié)果展示1253統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖例1-4軸標(biāo)簽的設(shè)置在set_global_opts()中,示例如下所示:1263統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖結(jié)果展示:圖1.11設(shè)置軸標(biāo)簽的結(jié)果展示1273統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖例1-5與柱狀圖十分相似的一個(gè)圖表類型則是條形圖,完全可以將其看成x軸與y軸翻轉(zhuǎn)的柱狀圖,因此,我們同樣可以利用Bar類來(lái)繪制條形圖,代碼如下:1283統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖結(jié)果如下:圖1.12條形圖的結(jié)果展示注意:此處除了需要用reversal_axis()函數(shù)將XY軸翻轉(zhuǎn)之外,還需要將數(shù)字標(biāo)簽的位置改在右邊,否則標(biāo)簽仍舊會(huì)顯示在上側(cè),標(biāo)簽與圖重合將會(huì)導(dǎo)致視圖不清。1293統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖例1-6堆疊柱狀圖是使用函數(shù)add_yaxis()中的stack參數(shù),每添加一個(gè)y軸的數(shù)據(jù)都可以設(shè)置一個(gè)stack參數(shù),該參數(shù)的值相當(dāng)于是該系列數(shù)據(jù)的名稱,最終形成的數(shù)據(jù)會(huì)將相同名稱的柱子堆疊在一起,示例如下所示:1303統(tǒng)計(jì)圖(直角坐標(biāo)系)——柱狀圖圖1.13堆疊柱狀圖的結(jié)果展示結(jié)果展示:1313統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖箱線圖(BoxPlot)又可稱為盒須圖,適用于顯示一組數(shù)據(jù)分布情況的統(tǒng)計(jì)圖。常用于品質(zhì)管理領(lǐng)域,能夠有效的反應(yīng)原始數(shù)據(jù)分布特征,還能對(duì)多組數(shù)據(jù)分布特征進(jìn)行比較。下面先介紹與箱線圖Boxplot類相關(guān)的函數(shù):1.add_yaxis()該函數(shù)的作用是傳入數(shù)據(jù),函數(shù)以及參數(shù)說(shuō)明如下:defadd_yaxis()series_name:設(shè)置系列名稱,系列名稱會(huì)在提示框以及圖例中顯示。y_axis:傳入系列數(shù)據(jù)。is_selected:是否選中圖例,值類型為bool類型,默認(rèn)是True,在圖剛完成時(shí)不會(huì)顯示設(shè)置為False的系列數(shù)據(jù),可以手動(dòng)點(diǎn)擊圖例來(lái)調(diào)整數(shù)據(jù)的顯示。1323統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖xaxis_index:指定x軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)x軸的時(shí)候有用。yaxis_index:指定y軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)y軸的時(shí)候有用。label_opts:設(shè)置標(biāo)簽樣式,使用series_options.LabelOpts()進(jìn)行設(shè)置。markpoint_opts:設(shè)置標(biāo)記點(diǎn),使用series_options.MarkPointOpts()進(jìn)行設(shè)置。markline_opts:設(shè)置標(biāo)記線,使用series_options.MarkLineOpts()進(jìn)行設(shè)置。tooltip_opts:設(shè)置提示框樣式,使用series_options.TooltipOpts()進(jìn)行設(shè)置。itemstyle_opts:設(shè)置圖元樣式,使用series_options.ItemStyleOpts()進(jìn)行設(shè)置。1333統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖接下來(lái)對(duì)車禍數(shù)據(jù)集(car_crashes.csv)進(jìn)行繪制箱線圖,車禍數(shù)據(jù)集中共有八個(gè)特征,首先讀取數(shù)據(jù)并查看數(shù)據(jù)集:圖1.14車禍數(shù)據(jù)展示結(jié)果如下:1343統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖例1-7接著對(duì)整個(gè)數(shù)據(jù)框的前5列數(shù)據(jù)繪制箱線圖,實(shí)例代碼如下:1353統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖圖1.15基本箱線圖的結(jié)果展示1363統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖代碼講解:在構(gòu)造繪制箱線圖函數(shù)時(shí),首先利用Boxplot()進(jìn)行實(shí)例化;再添加x軸的值,即為數(shù)據(jù)框的列名,取列名的前5列;增加y軸數(shù)據(jù)時(shí)同樣利用的是add_yaxis()函數(shù),第一個(gè)參數(shù)、是系列名稱,即圖例處顯示的文字,需要注意的是第二個(gè)參數(shù)傳遞的并非是原始數(shù)據(jù),而是需要用prepare_data()函數(shù)對(duì)原始數(shù)據(jù)進(jìn)行一次處理,箱線圖中一個(gè)箱體所展示的數(shù)據(jù)特征包括上邊界、25%分位數(shù)、中位數(shù)、75%分位數(shù)、下邊界等5個(gè)特征值,可以將一組數(shù)據(jù)的整體分布情況較好的用一個(gè)箱體展示,因此繪制箱線圖所需要的不是一整組數(shù)據(jù),而是一組數(shù)據(jù)的上邊界、25%分位數(shù)、中位數(shù)、75%分位數(shù)、下邊界,而prepare_data()函數(shù)的作用就是將傳入的數(shù)據(jù)列表排序并計(jì)算出這5個(gè)數(shù)據(jù)統(tǒng)計(jì)量。1373統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖例1-8多系列箱線圖是將幾個(gè)數(shù)據(jù)集在相同的特征中對(duì)比數(shù)據(jù)的各種數(shù)字特征,這里為了方便,用的同一個(gè)數(shù)據(jù)的前半部分與后半部分進(jìn)行對(duì)比。在真實(shí)的項(xiàng)目環(huán)境中,會(huì)將數(shù)據(jù)集按某個(gè)分類特征為標(biāo)準(zhǔn),對(duì)比分析該分類特征的不同水平的數(shù)據(jù)分布。代碼如下:1383統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖圖1.16多系列箱線圖的結(jié)果展示1393統(tǒng)計(jì)圖(直角坐標(biāo)系)——箱線圖這里增加一個(gè)系列的方式同之前的方式一樣,都是使用add_yaxis()函數(shù),需要增加幾個(gè)系列,則使用幾次add_axis()函數(shù)。需要注意的是,箱線圖并不是將所有樣本都畫(huà)在圖上,而是畫(huà)出數(shù)據(jù)集的各個(gè)數(shù)字特征,因此需要將原有數(shù)據(jù)集進(jìn)行處理一次,處理原數(shù)據(jù)集的函數(shù)用的是prepare_data這個(gè)函數(shù)。1403統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖散點(diǎn)圖(ScatterPlot)在統(tǒng)計(jì)中常用于回歸分析中,在直角坐標(biāo)系中描下數(shù)據(jù)點(diǎn),可以根據(jù)散點(diǎn)圖觀察數(shù)據(jù)集的數(shù)據(jù)分布以及因變量與自變量之間的關(guān)系,從而能夠選擇更為恰當(dāng)?shù)姆绞竭M(jìn)一步分析。下面介紹有關(guān)散點(diǎn)圖Scatter類相關(guān)的函數(shù):1.add_yaxis()該函數(shù)的作用是傳入系列數(shù)據(jù),函數(shù)以及參數(shù)說(shuō)明如下:series_name:設(shè)置系列名稱,系列名稱會(huì)在提示框以及圖例中顯示。y_axis:傳入系列數(shù)據(jù)。is_selected:是否選中圖例,值類型為bool類型,默認(rèn)是True,在圖剛完成時(shí)不會(huì)顯示設(shè)置為False的系列數(shù)據(jù),可以手動(dòng)點(diǎn)擊圖例來(lái)調(diào)整數(shù)據(jù)的顯示。defadd_yaxis()1413統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖xaxis_index:指定x軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)x軸的時(shí)候有用。yaxis_index:指定y軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)y軸的時(shí)候有用。color:設(shè)置系列l(wèi)abel的顏色。symbol:設(shè)置標(biāo)記的形狀,可選值有”circle”、“rect”、”roundrect”、“triangle”、”diamond”、“pin”、“arrow”、“none”等。symbol_size:設(shè)置標(biāo)記的尺寸大小,值類型支持?jǐn)?shù)字和列表,當(dāng)值為數(shù)字時(shí),則是直接設(shè)置標(biāo)記的大?。蝗糁禐榱斜頃r(shí),列表中的兩個(gè)元素分別設(shè)置標(biāo)記的寬和高。symbol_rotate:設(shè)置標(biāo)記的旋轉(zhuǎn)角度。label_opts:設(shè)置標(biāo)簽樣式,使用series_options.LabelOpts()進(jìn)行設(shè)置。1423統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖markpoint_opts:設(shè)置標(biāo)記點(diǎn),使用series_options.MarkPointOpts()進(jìn)行設(shè)置。markline_opts:設(shè)置標(biāo)記線,使用series_options.MarkLineOpts()進(jìn)行設(shè)置。tooltip_opts:設(shè)置提示框樣式,使用series_options.TooltipOpts()進(jìn)行設(shè)置。itemstyle_opts:設(shè)置圖元樣式,使用series_options.ItemStyleOpts()進(jìn)行設(shè)置。encode:定義data的哪個(gè)維度被編碼成什么。1433統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖例1-9本例利用車禍數(shù)據(jù)集的“ins_losses”、”ins_prenium”兩列數(shù)據(jù)分別作為散點(diǎn)圖的x軸和y軸,這樣每個(gè)樣本都可以在一個(gè)確定的坐標(biāo)系中找到確定的位置。描點(diǎn)之后就可以宏觀的觀察樣本數(shù)據(jù)之間潛在的關(guān)系,也就是觀察數(shù)據(jù)集特征之間的關(guān)系。代碼如下:1443統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖圖1.17基本散點(diǎn)圖的結(jié)果展示1453統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖代碼解釋:這里的散點(diǎn)圖展示了一個(gè)二維數(shù)據(jù),x軸為一維,y軸為另一維,相當(dāng)于是在一個(gè)坐標(biāo)系中描繪了一組(x,y)數(shù)據(jù)點(diǎn),依據(jù)上述分析,我們很容易想到利用add_xaixs()添加x軸的一組數(shù)據(jù),用函數(shù)add_yaxis()添加y軸的一組數(shù)據(jù)。需要注意的是,pyecharts中y軸的值默認(rèn)顯為數(shù)據(jù)標(biāo)簽,想要畫(huà)出上面簡(jiǎn)潔的圖則需要利用set_series_opts()函數(shù)將數(shù)據(jù)標(biāo)簽手動(dòng)設(shè)置為不顯示,才能夠得到上述圖表。1463統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖例1-10在看到剛剛畫(huà)好的圖,大致能夠了解到數(shù)據(jù)集兩個(gè)特征的走勢(shì)以及之間的關(guān)系,但是若是想要了解某個(gè)點(diǎn)的值,這樣除了點(diǎn)和坐標(biāo)軸就空空如也的圖未免有些不便觀察,因此可以在其上添加一些網(wǎng)格來(lái)輔助觀察數(shù)據(jù)水平。代碼如下:1473統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖圖1.18散點(diǎn)圖增加分割線的結(jié)果展示1483統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖代碼解釋:相比于上一個(gè)圖來(lái)說(shuō),這個(gè)圖多了一些網(wǎng)格,這些網(wǎng)格主要的作用就是輔助觀察數(shù)據(jù)的值。實(shí)現(xiàn)這個(gè)效果需要用到set_global_opts函數(shù)中的xaxis_opts和yaxis_opts參數(shù),我們將這兩個(gè)參數(shù)的值重新設(shè)置,將splitline_opts的is_show參數(shù)設(shè)置為了True。這樣就可以看到網(wǎng)格線了。相應(yīng)的還可以實(shí)現(xiàn)設(shè)置網(wǎng)格線的間距、角度、位置、最大值、最小值等等屬性。1493統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖例1-11上面的圖中雖然增加了網(wǎng)格線輔助觀察,但是如何才能讓人對(duì)圖中的數(shù)據(jù)點(diǎn)對(duì)應(yīng)值的大小有更深的視覺(jué)感受?這里我們可以改變點(diǎn)的顏色,顏色能夠比數(shù)字給人更大更明顯的視覺(jué)沖擊。實(shí)現(xiàn)代碼如下:1503統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖圖1.19散點(diǎn)圖增加顏色的結(jié)果展示1513統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖代碼解釋:這段代碼中在set_global_opts函數(shù)中增加了visualmap_opts的參數(shù),該參數(shù)中能夠設(shè)置最大、最小值;相應(yīng)的,數(shù)據(jù)越小,點(diǎn)的顏色越偏向藍(lán)色,數(shù)據(jù)越大,點(diǎn)的顏色越偏向紅色,左側(cè)也會(huì)顯示一個(gè)顏色調(diào)來(lái)展示數(shù)據(jù)與顏色之間的關(guān)系。該參數(shù)除了能夠設(shè)置最大最小值之外,還能夠設(shè)置顯示的位置、方向、是否分段、背景顏色、長(zhǎng)寬等等屬性。1523統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖例1-12除了不同的顏色可以快速的讓人感受到數(shù)據(jù)的大小之外,點(diǎn)的尺寸也同樣可以給人強(qiáng)烈的視覺(jué)沖擊,下面是通過(guò)點(diǎn)的大小來(lái)表現(xiàn)數(shù)據(jù)的大小:1533統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖圖1.20散點(diǎn)圖設(shè)置不同點(diǎn)尺寸的結(jié)果展示代碼詳解:改變點(diǎn)的尺寸大小需要用的參數(shù)是visualmap_opts,將type_參數(shù)的值改成”size”即可實(shí)現(xiàn),其他與之前的代碼并無(wú)區(qū)別。1543統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖例1-13從上面的例子中我們知道散點(diǎn)圖除了一般平面圖中有的x軸與y軸這兩個(gè)維度之外,點(diǎn)的尺寸與顏色也可以改變,那么點(diǎn)的顏色或者尺寸是否可以展示第三維的數(shù)據(jù)呢?答案是肯定的,因此散點(diǎn)圖就可以在一個(gè)平面圖中傳遞更多信息。代碼如下:1553統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖圖1.21顯示三維數(shù)據(jù)散點(diǎn)圖的結(jié)果展示代碼詳解:從代碼中我們可以看到,在add_yaxis()函數(shù)中傳遞參數(shù)時(shí),傳入的數(shù)據(jù)有兩個(gè)維度,而visualmap_opts參數(shù)中在配置組件時(shí)設(shè)置了另一個(gè)參數(shù)dimension,這樣就能使顏色展示第三個(gè)維度,畫(huà)出來(lái)的圖也有三個(gè)維度。1563統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖例1-14除了上述的配置之外,我們還可以為我們的圖增加一些炫酷的特效,例如每個(gè)點(diǎn)都增加漣漪動(dòng)圖效果,這樣是不是能夠使我們的圖更加吸引人?漣漪特效散點(diǎn)圖中的add_yaxis()函數(shù)相較于散點(diǎn)圖中的add_yaxis()函數(shù)多了一個(gè)effect_opts參數(shù),該參數(shù)使用series_options.EffectOpts()進(jìn)行設(shè)置漣漪特效樣式。1573統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖實(shí)現(xiàn)代碼如下:1583統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖圖1.22漣漪特效散點(diǎn)圖的結(jié)果展示代碼詳解:漣漪散點(diǎn)圖所用到的類不再是Scatter,而是EffectScatter,同樣是先實(shí)例化,然后傳入數(shù)據(jù)。1593統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖例1-15漣漪特效圖的點(diǎn)可以改變形狀,這不僅僅可以使我們的圖更加吸引人眼球,更重要的是,不同的點(diǎn)的形狀同樣可以表示一個(gè)維度,例如數(shù)據(jù)集中的一個(gè)分類特征,或者表示不同的數(shù)據(jù)集。代碼如下:1603統(tǒng)計(jì)圖(直角坐標(biāo)系)——散點(diǎn)圖圖1.23漣漪特效散點(diǎn)圖不同點(diǎn)類型的結(jié)果展示代碼詳解:改變點(diǎn)的形狀的參數(shù)是在add_yaxis函數(shù)中的symbol參數(shù),除了本例中的DIAMOND之外還有RECT、ROUND_RECT、TRIANGLE、ARROW等值可以實(shí)現(xiàn)。1613統(tǒng)計(jì)圖(直角坐標(biāo)系)——熱力圖熱力圖(HeatMap)在可視化項(xiàng)目比較常見(jiàn),主要是利用不同的顏色來(lái)體現(xiàn)熱點(diǎn)分布。常見(jiàn)于統(tǒng)計(jì)中展示數(shù)據(jù)集中不同特征之間的相關(guān)程度;除此之外也常常用于表示地圖上不同區(qū)域的某個(gè)指標(biāo)的高低或者聚集程度。這里先介紹與熱力圖HeatMap相關(guān)的函數(shù):1.add_yaxis()該函數(shù)的作用是傳入數(shù)據(jù),函數(shù)以及參數(shù)說(shuō)明如下:defadd_yaxis()series_name:設(shè)置系列名稱,系列名稱會(huì)在提示框以及圖例中顯示。y_axis:傳入系列數(shù)據(jù)。value:設(shè)置系列數(shù)據(jù)項(xiàng)。is_selected:是否選中圖例,值類型為bool類型,默認(rèn)是True,在圖剛完成時(shí)不會(huì)顯示設(shè)置為False的系列數(shù)據(jù),可以手動(dòng)點(diǎn)擊圖例來(lái)調(diào)整數(shù)據(jù)的顯示。1623統(tǒng)計(jì)圖(直角坐標(biāo)系)——熱力圖xaxis_index:指定x軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)x軸的時(shí)候有用。yaxis_index:指定y軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)y軸的時(shí)候有用。label_opts:設(shè)置標(biāo)簽樣式,使用series_options.LabelOpts()進(jìn)行設(shè)置。markpoint_opts:設(shè)置標(biāo)記點(diǎn),使用series_options.MarkPointOpts()進(jìn)行設(shè)置。markline_opts:設(shè)置標(biāo)記線,使用series_options.MarkLineOpts()進(jìn)行設(shè)置。tooltip_opts:設(shè)置提示框樣式,使用series_options.TooltipOpts()進(jìn)行設(shè)置。itemstyle_opts:設(shè)置圖元樣式,使用series_options.ItemStyleOpts()進(jìn)行設(shè)置。1633統(tǒng)計(jì)圖(直角坐標(biāo)系)——熱力圖例1-16本例中對(duì)車禍數(shù)據(jù)集中的各個(gè)特征進(jìn)行相關(guān)性分析,并將結(jié)果以熱力圖的形式進(jìn)行展示,實(shí)現(xiàn)熱力圖的代碼如下所示:1643統(tǒng)計(jì)圖(直角坐標(biāo)系)——熱力圖1653統(tǒng)計(jì)圖(直角坐標(biāo)系)——熱力圖圖1.24熱力圖的結(jié)果展示1663統(tǒng)計(jì)圖(直角坐標(biāo)系)——熱力圖代碼詳解:首先對(duì)數(shù)據(jù)集data計(jì)算相關(guān)系數(shù),corr()函數(shù)返回的數(shù)據(jù)類型為DataFrame,這里將其轉(zhuǎn)化為列表;接著實(shí)例化HeatMap()之后,用add_yaxis函數(shù)傳入己經(jīng)計(jì)算好的相關(guān)系數(shù),注意這里需要手動(dòng)傳入x軸與y軸的標(biāo)簽。除此之外,還需要將visualmap_opts中的最大值與最小值分別設(shè)置為1、-1,這是因?yàn)閙ax_默認(rèn)的值為100,min_默認(rèn)的值為0,這個(gè)取值范圍并不符合相關(guān)系數(shù)的取值范圍,因此繪制的圖不會(huì)出現(xiàn)我們想要的結(jié)果。這里為了標(biāo)簽?zāi)軌蛲耆@示,對(duì)其設(shè)置了標(biāo)簽的旋轉(zhuǎn)角度。如果想要顯示各個(gè)方格中的值,在add_yaxis()函數(shù)中設(shè)置label_opts參數(shù)的值,寫(xiě)為label_opts=opts.LabelOpts(is_show=True)即可,同時(shí)還可以利用position設(shè)置標(biāo)簽所在的位置,這里不一一展示,讀者可以自行實(shí)驗(yàn)。1673統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖K線圖(KLine)又稱為蠟燭線、陰陽(yáng)線等等,最先是日本商人用于記錄米市行情,后在股市中被廣泛應(yīng)用。由此可見(jiàn),K線圖適用于描繪某個(gè)商品每天的價(jià)格波動(dòng)。K線圖的優(yōu)點(diǎn)是能夠全面透徹的觀察市場(chǎng)行情的波動(dòng)變化。缺點(diǎn)便是繪制繁復(fù),是許多走勢(shì)圖中較為難畫(huà)的一種,并且對(duì)于不懂K線圖的人來(lái)說(shuō),理解起來(lái)也會(huì)有一定的難度,沒(méi)有其他圖那么直觀簡(jiǎn)潔易懂。1683統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖圖1.25K線圖柱體標(biāo)注在最常用的股票場(chǎng)景中,K線圖每條線中都包含開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最高價(jià)和最低價(jià)組成;圖中的線分為陰線與陽(yáng)線,當(dāng)收盤(pán)價(jià)高于開(kāi)盤(pán)價(jià)時(shí),實(shí)體部分會(huì)繪制為紅線或者白線,也成為“陽(yáng)線“;反之,當(dāng)收盤(pán)價(jià)低于開(kāi)盤(pán)價(jià),則成為”陰線“,實(shí)體部分則是綠色或者黑色。如下圖所示:1693統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖下面是對(duì)K線圖Kline類相關(guān)的函數(shù)介紹:1.add_yaxis()該函數(shù)的作用是傳入數(shù)據(jù),函數(shù)以及參數(shù)說(shuō)明如下:defadd_yaxis()series_name:設(shè)置系列名稱,系列名稱會(huì)在提示框以及圖例中顯示。y_axis:傳入系列數(shù)據(jù)。is_selected:是否選中圖例,值類型為bool類型,默認(rèn)是True,在圖剛完成時(shí)不會(huì)顯示設(shè)置為False的系列數(shù)據(jù),可以手動(dòng)點(diǎn)擊圖例來(lái)調(diào)整數(shù)據(jù)的顯示。xaxis_index:指定x軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)x軸的時(shí)候有用。1703統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖yaxis_index:指定y軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)y軸的時(shí)候有用。markpoint_opts:設(shè)置標(biāo)記點(diǎn),使用series_options.MarkPointOpts()進(jìn)行設(shè)置。markline_opts:設(shè)置標(biāo)記線,使用series_options.MarkLineOpts()進(jìn)行設(shè)置。tooltip_opts:設(shè)置提示框樣式,使用series_options.TooltipOpts()進(jìn)行設(shè)置。itemstyle_opts:設(shè)置圖元樣式,使用series_options.ItemStyleOpts()進(jìn)行設(shè)置。1713統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖在本例中所用的數(shù)據(jù)集是隨機(jī)生成的,其中包括日期、開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最低價(jià)、最高價(jià)、成交量等特征,只用于示范K線圖的畫(huà)法。數(shù)據(jù)集如下:圖1.26股票數(shù)據(jù)展示1723統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖例1-171733統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖圖1.27K線圖的結(jié)果展示1743統(tǒng)計(jì)圖(直角坐標(biāo)系)——K線圖代碼詳解:這里的橫軸傳入的數(shù)據(jù)是日期,由于數(shù)據(jù)集中的日期除了年月日之外還有時(shí)分秒,因此我們構(gòu)造了一個(gè)臨時(shí)函數(shù),用于獲取日期中的年月日;add_yaxis中傳入的數(shù)據(jù)則是開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最低價(jià)、最高價(jià)等,這里傳入時(shí)需注意要將數(shù)據(jù)轉(zhuǎn)化為列表。1753統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖折線圖(Line)也稱為趨勢(shì)圖。常常用于顯示某個(gè)指標(biāo)在不同時(shí)間點(diǎn)的數(shù)值,簡(jiǎn)而言之,折線圖是用于描述某一指標(biāo)隨時(shí)間的變化,反映事物的動(dòng)態(tài)變化過(guò)程。折線圖不僅可以體現(xiàn)數(shù)據(jù)的增減關(guān)系,圖形的斜率也能在一定程度上體現(xiàn)增長(zhǎng)率。下面先介紹與折線圖Line類相關(guān)的函數(shù):1.add_yaxis()該函數(shù)的作用是傳入數(shù)據(jù),函數(shù)以及參數(shù)說(shuō)明如下:defadd_yaxis()series_name:設(shè)置系列名稱,系列名稱會(huì)在提示框以及圖例中顯示。y_axis:傳入系列數(shù)據(jù)。1763統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖is_selected:是否選中圖例,值類型為bool類型,默認(rèn)是True,在圖剛完成時(shí)不會(huì)顯示設(shè)置為False的系列數(shù)據(jù),可以手動(dòng)點(diǎn)擊圖例來(lái)調(diào)整數(shù)據(jù)的顯示。is_connect_nones:是否連接空數(shù)據(jù),值類型為bool類型,默認(rèn)值為False,空數(shù)據(jù)使用”None”表示。xaxis_index:指定x軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)x軸的時(shí)候有用。yaxis_index:指定y軸的index,在單個(gè)圖表實(shí)例中存在多個(gè)y軸的時(shí)候有用。color:設(shè)置系列l(wèi)abel的顏色。is_symbol_show:是否顯示symbol。symbol:設(shè)置標(biāo)記的形狀,可選值有”circle”、“rect”、”roundRect”、“triangle”、”diamond”、“pin”、“arrow”、“none”等。1773統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖symbol_size:設(shè)置標(biāo)記的尺寸大小,值類型支持?jǐn)?shù)字和列表,當(dāng)值為數(shù)字時(shí),則是直接設(shè)置標(biāo)記的大小;若值為列表時(shí),列表中的兩個(gè)元素分別設(shè)置標(biāo)記的寬和高。stack:數(shù)據(jù)堆疊,可以將相同類目軸的不同系列數(shù)據(jù)進(jìn)行堆疊顯示。is_smooth:設(shè)置是否平滑曲線,值類型為bool類型,默認(rèn)值為False。is_step:設(shè)置是否顯示成階梯圖,值類型為bool類型,默認(rèn)值為False。is_hover_animation:設(shè)置是否開(kāi)啟hover在拐點(diǎn)標(biāo)志上的提示動(dòng)畫(huà)效果,值類型為bool類型,默認(rèn)值為False。z_level:設(shè)置折線圖中所有圖形的zlevel值。zlevel值用于Canvas分層,不同zlevel值的圖形會(huì)放置在不同的Canvas中,Canvas分層是一種常見(jiàn)的優(yōu)化手段。注意zlevel大的Canvas會(huì)放在zlevel小的Canvas的上面。1783統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖z:設(shè)置折線圖組件的所有圖形的z值。z值用于控制圖形的前后順序,注意z值大的圖形會(huì)覆蓋z值小的圖形。注意z相比zlevel優(yōu)先級(jí)更低,而且不會(huì)創(chuàng)建新的Canvas。label_opts:設(shè)置標(biāo)簽樣式,使用series_options.LabelOpts()進(jìn)行設(shè)置。markpoint_opts:設(shè)置標(biāo)記點(diǎn),使用series_options.MarkPointOpts()進(jìn)行設(shè)置。markline_opts:設(shè)置標(biāo)記線,使用series_options.MarkLineOpts()進(jìn)行設(shè)置。markarea_opts:設(shè)置標(biāo)記線,使用series_options.MarkLineOpts()進(jìn)行設(shè)置。tooltip_opts:設(shè)置提示框樣式,使用series_options.TooltipOpts()進(jìn)行設(shè)置。1793統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖linestyle_opts:設(shè)置線樣式,使用series_options.LineStyleOpts()進(jìn)行設(shè)置areastyle_opts:設(shè)置填充區(qū)域樣式,使用series_options.AreaStyleOpts()進(jìn)行設(shè)置itemstyle_opts:設(shè)置圖元樣式,使用series_options.ItemStyleOpts()進(jìn)行設(shè)置。1803統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖例1-18這里我們?nèi)耘f使用剛剛的股票數(shù)據(jù),實(shí)現(xiàn)代碼如下:1813統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖圖1.28折線圖的結(jié)果展示1823統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖代碼詳解:在實(shí)例化Line類之后,通過(guò)add_yaxis函數(shù)傳入數(shù)據(jù)。在繪畫(huà)折線圖時(shí),經(jīng)常會(huì)出現(xiàn)因?yàn)閿?shù)值過(guò)大,而導(dǎo)致數(shù)據(jù)之間的差異不明顯,對(duì)于這種情況,我們?cè)趕et_global_opts函數(shù)中設(shè)置yaxis_opts參數(shù),將y軸的最小值0改成數(shù)據(jù)集中的最小值,這樣y軸的起始點(diǎn)就會(huì)改變,增大數(shù)據(jù)之間的差異性。1833統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖例1-19根據(jù)我們的經(jīng)驗(yàn),數(shù)據(jù)的變化一般都是平滑的,而非直接的轉(zhuǎn)折,為了更好的演示數(shù)據(jù)的變化,pyecharts中提供了平滑的折線圖,代碼如下:1843統(tǒng)計(jì)圖(直角坐標(biāo)系)——折線圖圖1.29平滑折線圖的結(jié)果展示代碼詳解:相較于普通的折線圖,平滑折線圖只需更改add_yaxis函數(shù)中的is_smooth參數(shù),該參數(shù)的值為布爾值,默認(rèn)為False,當(dāng)設(shè)置為T(mén)rue時(shí),就是平滑折線圖。1853統(tǒng)計(jì)圖(直角坐標(biāo)系)——疊加多圖我們知道,不同類型的圖的優(yōu)勢(shì)不同,有時(shí)需要結(jié)合多種類型的圖表來(lái)展示一個(gè)數(shù)據(jù)集,在pyecharts中用overlap()函數(shù)對(duì)多個(gè)圖表進(jìn)行疊加,代碼如下所示:1863統(tǒng)計(jì)圖(直角坐標(biāo)系)——疊加多圖圖1.30疊加多圖的結(jié)果展示代碼詳解:在結(jié)合多個(gè)不同類型的圖表時(shí)需要用到overlap函數(shù),首先我們定義了一個(gè)柱形圖,接著定義了一個(gè)折線圖,最后利用overlap將其結(jié)合在一起即可。187基本圖表4.1884基本圖表上一小節(jié)中,介紹了如何繪制多種統(tǒng)計(jì)圖,但是在做分析寫(xiě)報(bào)告時(shí),我們需要更多具有特色的圖,才能最大化展示數(shù)據(jù)的特點(diǎn)。本小節(jié)將會(huì)為大家講解更多的圖表類型。1894基本圖表——日歷熱力圖日歷熱力圖(CalendarHeatmap)是熱力圖與日歷圖結(jié)合的產(chǎn)物。日歷熱力圖一般用于展示兩個(gè)變量:時(shí)間變量與另一種變量;具體的形式是由7×n個(gè)小方框組成的類似于表格的圖,每個(gè)小方格代表一天,而方塊中的顏色則是表示另一變量值的大小。GitHub官網(wǎng)中有一個(gè)日歷熱力圖來(lái)顯示賬戶的使用程度,其中綠色越深使用次

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論