【免費贈書】使用 pyechart 輕鬆玩轉數據可視化

(點擊上方公眾號,可快速關注一起學Python)

pyecharts是一個用於生成Echarts圖表的類庫;而Echarts是百度開源的一個數據可視化JavaScnpt庫。使用pyecharts繪製的圖表美觀且具有交互性。

散點圖

pyecharts庫可繪製多種圖形。利用Scatter方法可繪製散點圖,代碼如下:

import

numpy

as

np

import

pandas

as

pd

import

pyechartsx = [

10

,

20

,

30

,

40

,

50

,

60

]y = [

10

,

20

,

30

,

40

,

50

,

60

]scatter =pyecharts.Scatter(

"散點圖示例"

)        

#加入標題

scatter.add(

"A"

, x,y)                          

#繪製散點圖

scatter

pyecharts繪圖的核心代碼是add方法,該方法用於添加圖表的數據和設置各種配置項。在scatter中,add函數的參數如下,其中,name為圖例名稱,後面依次為x軸和y軸,symbol_size為散點圖大小,默認為10。

add(name, x_axis,y_axis,    extra_data=

None

,symbol_size=

10

, **kwargs)

繪製的散點圖如圖所示。

利用

Visualmap

組件,可以通過圖形點大小映射數值,效果如圖所示。代碼如下:

x = [

10

,

20

,

30

,

40

,

50

,

60

]y = [

10

,

20

,

30

,

40

,

50

,

60

]scatter = pyecharts.Scatter(

"散點圖示例"

)scatter.add(

"A"

, x, y,is_visualmap=

True

,            visual_type=

"size"

,visual_range_size=[

10

,

60

])scatter

折線圖

利用Line方法可繪製折線圖,代碼如下:

years = [

1950

,

1960

,

1970

,

1980

,

1990

,

2000

,

2010

]gdp = [

300.2

,

543.3

,

1075.9

,

2862.5

,

5979.6

,

10289.7

,

14958.3

]line =pyecharts.Line(

"折線圖示例"

)line.add(

"GDP"

,years, gdp, mark_point=[

"average"

])        

#標記平均值

line

下面給出line.add方法的參數。is_symbol_show顯示標記圖形;is_smooth顯示平滑曲線;is_stack顯示數據堆疊;is_step設置階梯線圖;is_fill繪製面積圖,具體代碼如下:

add(name, x_axis,y_axis,    is_symbol_show=

True

,    is_smooth=

False

,    is_stack=

False

,    is_step=

False

,is_fill=

False

, **kwargs)

繪製的折線圖如圖所示。

下面給出通過設置is_step參數繪製階梯圖的代碼,最終的效果如圖所示

years = [

1950

,

1960

,

1970

,

1980

,

1990

,

2000

,

2010

]gdp = [

300.2

,

543.3

,

1075.9

,

2862.5

,

5979.6

,

10289.7

,

14958.3

]line =pyecharts.Line(

"階梯圖"

)line.add(

"GDP"

,years, gdp, is_step=

True

)line

面給出通過設置is_fill參數繪製面積圖的代碼。其中,area_color為填充顏色,area_opacity為透明度,效果如圖所示。

years = [

1950

,

1960

,

1970

,

1980

,

1990

,

2000

,

2010

]gdp = [

300.2

,

543.3

,

1075.9

,

2862.5

,

5979.6

,

10289.7

,

14958.3

]line =pyecharts.Line(

"面積圖"

)line.add(

"GDP"

, years, gdp, is_fill=

True

,area_color=

"#000"

,area_opacity=

0.3

)line

柱狀圖

利用Bar方法可以繪製柱狀圖,代碼如下:

data = [

23

,

85

,

72

,

43

,

52

]labels =[

"A"

,

"B"

,

"C"

,

"D"

,

"E"

]bar =pyecharts.Bar(

"柱狀圖"

)bar.add(

"one"

,labels, data)bar

下面給出bar.add方法的參數。其中,is_stack為堆積柱狀圖;bar_category_gap為類目間的距離,值為0時則可以繪製直方圖。

add(name, x_axis,y_axis,    is_stack=

False

,bar_category_gap=

"20%"

,**kwargs)

繪製的柱狀圖如圖所示。

使用多個add方法可以繪製並列柱狀圖,效果如圖所示。代碼如下:

data1 = [

23

,

85

,

72

,

43

,

52

]data2 = [

14

,

35

,

62

,

41

,

19

]labels =[

"A"

,

"B"

,

"C"

,

"D"

,

"E"

]bar =pyecharts.Bar(

"並列柱狀圖"

)bar.add(

"one"

,labels, data1)bar.add(

"two"

, labels,data2)bar

通過設置is_stack參數可以繪製堆積柱狀圖,效果如圖所示。代碼如下:

data1 = [

23

,

85

,

72

,

43

,

52

]data2 = [

14

,

35

,

62

,

41

,

19

]labels =[

"A"

,

"B"

,

"C"

,

"D"

,

"E"

]bar =pyecharts.Bar(

"堆積柱狀圖"

)bar.add(

"one"

,labels, data1, is_stack=

True

)bar.add(

"two"

, labels,data2, is_stack=

True

)bar

通過設置is_convert參數可以繪製垂直柱狀圖,效果如圖所示。代碼如下:

data1 = [

23

,

85

,

72

,

43

,

52

]labels =[

"A"

,

"B"

,

"C"

,

"D"

,

"E"

]bar =pyecharts.Bar(

"垂直柱狀圖"

)bar.add(

"one"

,labels, data1, is_convert=

True

)bar

通過設置mark_point和mark_line參數可以標記點和線,效果如圖所示。代碼如下:

data1 = [

23

,

85

,

72

,

43

,

52

]data2 = [

14

,

35

,

62

,

41

,

19

]labels =[

"A"

,

"B"

,

"C"

,

"D"

,

"E"

]bar =pyecharts.Bar(

"標記點和線"

)bar.add(

"one"

,labels, data1, mark_point=[

"average"

])bar.add(

"two"

, labels, data2, mark_point=[

"max"

], mark_line=[

"min"

,

"max"

])bar

注意:全局變數mark_line要寫入最後一個add方法中。

令bar_category_gap參數為0,可繪製直方圖,效果如圖所示。代碼如下:

data = [

23

,

85

,

72

,

43

,

52

,

67

,

98

,

76

]labels =[

"A"

,

"B"

,

"C"

,

"D"

,

"E"

,

"F"

,

"G"

,

"H"

]bar =pyecharts.Bar(

"直方圖"

)bar.add(

""

,labels, data, bar_category_gap=

0

)bar

餅圖

餅圖用於表現不同類別的佔比情況。利用Pie方法可繪製餅圖,代碼如下:

data = [

45

,

76

,

35

,

47

,

56

]labels = [

"電腦"

,

"手機"

,

"冰箱"

,

"彩電"

,

"洗衣機"

]pie = pyecharts.Pie(

"餅圖"

)pie.add(

""

, labels, data,is_label_show=

True

)pie

下面給出pie.add方法的參數。其中,radius為設置餅圖半徑,默認為[0,75],第一項為內半徑,第二項為外半徑;center為設置餅圖中心坐標,默認為[50,50],第一項為橫坐標,第二項為縱坐標;rosetype可以設置南丁格爾圖(玫瑰圖),有兩種表現形式,分別為radius和area。

add(name, attr, value,    radius=

None

,    center=

None

,   rosetype=

None

, **kwargs)

繪製的餅圖如圖所示。

設置radius參數為[40,75],這樣就有了內半徑值,就可以繪製圓環圖了,效果如圖所示。代碼如下:

data = [

45

,

76

,

35

,

47

,

56

]labels = [

"電腦"

,

"手機"

,

"冰箱"

,

"彩電"

,

"洗衣機"

]pie = pyecharts.Pie(

"圓環圖"

)pie.add(

""

, labels,data, radius=[

40

,

75

], is_label_show=

True

)pie

設置radius參數為[40,75],這樣就有了內半徑值,就可以繪製圓環圖了,效果如圖所示。代碼如下:

data = [

45

,

76

,

35

,

47

,

56

]labels = [

"電腦"

,

"手機"

,

"冰箱"

,

"彩電"

,

"洗衣機"

]pie = pyecharts.Pie(

"圓環圖"

)pie.add(

""

, labels,data, radius=[

40

,

75

], is_label_show=

True

)pie

通過設置center參數可以繪製多個餅圖,這樣就可以比較兩種玫瑰圖的區別。通過圖可以看出,通過radius參數繪製的玫瑰圖的圓心角不同,以此來顯示其數據的百分比,玫瑰圖的半徑顯示數據的數值大小;通過area參數繪製的玫瑰圖的圓心角相同,僅通過半徑大小來顯示數據的區別。實現代碼如下:

data= [

45

,

76

,

35

,

47

,

56

]labels= [

"電腦"

,

"手機"

,

"冰箱"

,

"彩電"

,

"洗衣機"

]pie =pyecharts.Pie(

"玫瑰圖"

)pie.add(

""

,labels, data, radius=[

20

,

75

], center=[

25

,

50

],        rosetype=

"radius"

)pie.add(

""

,labels, data, radius=[

20

,

75

], center=[

75

,

50

],        rosetype=

"area"

, is_label_show=

True

)pie

箱線圖

箱線圖可顯示一組數據的最大值、最小值、中位數、下四分位數及上四分位數,可以體現數據的分布規律。利用Boxplot方法可繪製餅圖,其參數見下文。其中,x_axis為橫坐標列表;y_axis為嵌套列表。每個列表為[min, Q1, median (or Q2), Q3, max],該列表可通過內置的prepare_data方法轉換。

add(name, x_axis, y_axis, **kwargs)

這裡以Iris數據為例,首先讀入數據,如圖所示。

通過以下代碼即可繪製箱線圖,如圖所示。

x =list(iris_data.columns[

0

:

4

])y = [list(iris_data.sepal_length_cm),    list(iris_data.sepal_width_cm),    list(iris_data.petal_length_cm),    list(iris_data.petal_width_cm)]      

#構造y

boxplot =pyecharts.Boxplot(

"箱線圖"

)y_data =boxplot.prepare_data(y)      

#數據轉化

boxplot.add(

""

, x,y_data)boxplot

以上內容選自《

從零開始學Python數據分析

》。

想要了解更多的數據分析技術

可以

點擊購買鏈接

來訂購哦。

目前比較火的方向,大家都清楚,是機器學習。那麼機器學習演算法有沒有推薦的書呢?就給大家推薦一本,如下:

福利來了

本次小編特意拿出 4 本《

從零開始學Python數據分析

》和3本《

scikit learn機器學習

》作為福利贈送給關注Python那些事的小夥伴們,特別感謝

機械工業出版社

的贊助與支持。

贈書規則:

1、大家可以在本文留言區

留言評論自己想要某本書的理由或者是評論某項Python技術或者與Python那些事的故事

,小編將從留言區選擇最受歡迎的4位贈書;

2、我將從本文留言中選擇我最喜歡的3個留言,大家可以自由發揮;

由於留言區數目有限,會篩選放出認真有價值的評論。

截止日期為

9月15日 22:00

注意:本著公平的原則,刷贊無效,並且永久取消活動資格,歡迎舉報!

(完)

看完本文有收穫?請轉

發分享給更多人

關注「P

ython那些事」,做全棧開發工程師


推薦閱讀:

大佛:查詢網貸平台數據的簡單方法!
【整理版】漏斗圖的兩個實際工作案例
【添加日誌】從無到有搭建數據驅動自動化測試框架(12)
EXCEL常用技巧輸入和編輯數據
婚戀大數據顯示:婚外戀的女人也越來越多?

TAG:免費 | 數據 | 可視化 | 數據可視化 | 輕鬆 |