天天看點

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

    前言

在介紹一組資料時,一張圖永遠比一串資料更有說服力,并且圖表越直覺簡練,效果越好。百度開發的Echarts就是衆多資料可視化神器之一,代碼開源免費,在官網上還可以線上生成圖表并下載下傳,它的功能強大,可以實作資料視圖、圖表動态類型切換、圖例開關、資料區域選擇、多圖關聯等很多功能,但由于Echarts是基于JavaScript開發的,對JavaScript不甚熟悉的Pythoner們,隻能對着大神們制作的各種炫酷圖表望洋興歎。所謂有需求就有創造,GitHub上就有了相關的項目。今天為大家介紹現下最流行的Python庫,也是Echarts官網上推薦的Python語言中的擴充庫——pyecharts,它覆寫了Echarts的全部圖表和大部分功能,讓我們在Python中也能使用如此高大上的資料可視化神器。

下面的内容主要分為兩部分,第一部分為大家簡單介紹pyecharts,第二部分進行實戰演練,以微網誌熱搜次數為例子進行資料可視化分析。

1

Pyecharts簡介

我們可以通過pip安裝pyecharts。運作cmd,輸入如下指令:

pip install pyecharts

在官方文檔中,開發者将它的使用流程分為八個步驟:

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

對于不同類型的圖表,在第一步建立圖表執行個體的時候選擇的類是不同的,常見的基礎類型有柱狀圖/條形圖(Bar)、餅圖(Pie)、折線圖/面積圖(Line)等,還有炫酷的3D圖表、地圖、詞雲圖和熱力圖等基本圖表類共27個,通過參數配置,還可以變換出各種各樣的具體圖表,是不是想想就很興奮呢!那麼接下來,我們以最簡單的柱狀圖為例,進行一個quick start吧~

第一步,導入相關子產品:

from pyecharts import Bar
           

第二步,建立Bar執行個體:

bar = Bar('柱狀圖示例','以簡單的服裝資料為例')
           

其中,指令中的兩個參數分别是圖表的正标題和副标題,可以為空。

第三步,添加資料:

bar.add('服裝',["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75,90])
           

這條指令中的三個參數是必選參數,其中,第一個參數為圖例,第二、三個參數為橫坐标和縱坐标上的資料,這兩組資料都以清單的形式輸入,而且清單中的元素個數必須相等。

我們先使用預設的配置和模闆,直接跳到渲染一步:

bar.render(r'E:\\pyecharts\\my_first_chart.html')
           

其中.render( )可以輸入檔案名作為參數,直接生成目标html檔案

以上四條指令,即可生成一個最最基礎款的柱形圖,效果如下圖:

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

注意觀察圖的右側,有一排小按鈕,它們實作了諸如下載下傳、重新整理、檢視或更改資料、切換折線圖等功能。其中,将資料從柱狀圖向折線圖切換,是Bar元件本身所自帶的功能,也是Echarts提供的功能選項之一,我們在代碼上隻需要載入确定的資料即可。此處簡單展示一下部分功能:将圖表切換至折線圖,并儲存成.png格式的圖檔。

接下來,讓我們再加入一組資料,做成一個堆疊柱形圖。

同樣需要導入子產品,建立圖表執行個體:

from pyecharts import Bar bar = Bar("柱狀圖資料堆疊示例")#這次我們需要兩組資料,為了程式結構清晰,我們先将資料放入清單中:attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"] v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80]
           

我們依然展示六類服裝的資料,但這次我們展示兩個商家的,v1和v2分别為商家A和商家B的銷售資料。然後将資料添加到bar執行個體:

bar.add("商家A", attr, v1,is_stack=True) bar.add("商家B", attr, v2,is_stack=True)#其中,前三個參數與之前介紹的意義一樣,另一個關鍵字參數為is_stack,當值為True的時候實作資料堆疊。#設定好了之後,渲染導出:bar.render(r'E:\\pyecharts\\my_second_chart.html')
           
pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

接下來我們通過參數配置,豐富和變換圖示顯示樣式。

折線/面積圖是用折線将各個資料點連接配接起來的圖表,主要用于展現資料的變化趨勢。接下來,我們以武漢市PM2_5日均值與上海市PM2_5日均值資料為例為大家介紹折線和面積圖。

#首先,輸入如下程式:from pyecharts import Line line=Line("折線/面積圖示例","PM2_5日均值") date=["2月22日","2月23日","2月24日","2月25日","2月26日","2月27日","2月28日"] data1=[47,121,108,81,40,27,32] data2=[45,54,60,75,119,39,36]
           

然後,對“上海市”資料,我們添加參數,标記出均值點,設定标記點形狀(mark_point_symbol)為三角形;對“武漢市”資料,我們設定其為平滑曲線顯示,标記出最大值及最小值點,并将标記點形狀設為菱形,标記點大小為50。這樣,折線圖就制作成功了:

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

此外,我們還可以添加參數—填沖面積(is_fill)來繪制面積圖,并設定折線的寬度及區域的顔色、透明度等,結果如下:

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

餅圖主要以百分比形式顯示每一類數值相對于總數值的大小,常用于分類資料。我們以服裝資料為例繪制餅圖。

首先,依舊是導入子產品等步驟:

from pyecharts import Pie pie= Pie(“餅狀圖”,”服裝示例”,title_pos=’center’,width=900)  #設定主副标題居中顯示,餅圖寬度為900 attr = [“襯衫”,”羊毛衫”, “雪紡衫”, “褲子”,”高跟鞋”, “襪子”] v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80]
           

接下來就是餅圖繪制的重頭戲了:設定餅圖的中心(圓心)坐标(center),預設設定成百分比;設定标簽顯示(is_label_show),圖例不顯示(is_legend_show)。這樣,餅圖就繪制出來了:

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

上就是幾種常見的圖表類型的介紹了。除上述參數外,還有一些參數礙于篇幅限制沒有詳細列出,如參數"is_convert"可用于交換XY軸;參數"label_color"可改變柱形的顔色;參數"xaxis_label_textcolor"可改變橫坐标标簽的顔色等。大家在使用過程中可根據需要增減參數。同時,pyecharts還可以繪制雷達圖,箱線圖,地圖,詞雲圖等,功能可謂十分強大。大家也可微信搜尋“ECharts圖表示例”多多學習下~

2

微網誌熱搜次數的資料可視化分析

上文介紹了pyecharts的基礎用法,下面我們以2019上半年明星微網誌熱搜次數的資料為例進行實戰演練。

1.生成簡單柱狀圖

首先,我們通過搜尋拿到2019年上半年明星熱搜次數的資料,這裡僅選取8個藝人:周傑倫65次,易烊千玺50次,朱一龍55次,倪大紅49次,張藝興48次,迪麗熱巴45次,吳亦凡42次,楊幂49次。

根據資料的特征,我們先選用柱狀圖進行展示。

#首先,導入柱狀圖(Bar)子產品:from pyecharts.charts import Bar#第二步,利用add方法添加圖表資料和設定各種配置項:bar=Bar() #建立Bar執行個體bar.add_xaxis(["周傑倫", "易烊千玺", "朱一龍", "倪大紅","張藝興","迪麗熱巴","吳亦凡", "楊幂"]) bar.add_yaxis("熱搜次數", [65,50,55,49,48,45,42,49])
           
# 其中,bar.add_xaxis()中的參數為橫坐标上的資料;bar.add_yaxis()中的第一個參數為圖例,第二個參數清單為縱坐标上的資料。pyecharts 所有方法均支援鍊式調用,在此也可寫為:bar = (   Bar()   .add_xaxis(["周傑倫", "易烊千玺", "朱一龍", "倪大紅","張藝興","迪麗熱巴","吳亦凡", "楊幂"]) #加入橫坐标參數   .add_yaxis("熱搜次數", [65,50,55,49,48,45,42,49]) #加入縱坐标資料)#第三步,使用預設的配置和模闆,直接渲染出柱形圖:bar.render(r'E:\pyecharts學習\FirstBar.html')
           

render會生成本地 HTML檔案,預設會在目前目錄生成render.html檔案。它也支援 path 參數,如程式所示可以設定檔案儲存位置,檔案需要用浏覽器打開。

通過以上指令,就可生成一個最基礎的關于“2019上半年明星熱搜次數”的柱形圖,如下圖所示:

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

2.改變圖表結構

當一個橫坐标值對應兩個或多個縱坐标資料時,隻需要再添加一次或多次bar.add_yaxis()資訊。我們再加入2018下半年這些明星上微網誌熱搜的次數,則改變後的縱坐标的資料如下所示:

bar.add_yaxis("2018下半年", [24,63,81,0,42,28,66,31]) #加入縱坐标參數bar.add_yaxis("2019上半年", [65,50,55,49,48,45,42,49]) # 相對于一般縱向放置的柱狀圖,小編覺得橫向的Bar更直覺更好看,那麼改變方向隻需要向程式中加入:bar.reversal_axis()
           

資料的變化導緻标題也需要變化,最終的柱狀圖如下所示:

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...

根據圖表,我們可以看出明星上微網誌熱搜的次數與他們參演的電視劇和綜藝節目或者參加的活動有很大的關系。例如,倪大紅在2019年參演的電視劇《都挺好》爆紅之後,由于演技爆表以及角色的設定受到觀衆一直喜歡,故熱搜次數和2018有很大差距。

小結

這些資料和資訊通過柱狀圖都清晰地展示了出來,感興趣的朋友們可以自己動手試一試~

本期作者:許晟榕

本期編輯校對:秦範

長按,關注資料皮皮俠

pyecharts 大小_微網誌明星熱搜的資料可視化分析 ——基于Python資料可視化神器pyecharts...