1、pyecharts介紹
Echarts是一款由百度公司開(kāi)發(fā)的開(kāi)源數(shù)據(jù)可視化JS庫(kù),pyecharts是一款使用python調(diào)用echarts生成數(shù)據(jù)可視化的類庫(kù),可實(shí)現(xiàn)柱狀圖,折線圖,餅狀圖,地圖等統(tǒng)計(jì)圖表。
2、柱狀圖
適用場(chǎng)合是二維數(shù)據(jù)集(每個(gè)數(shù)據(jù)點(diǎn)包括兩個(gè)值x和y),但只有一個(gè)維度需要比較,用于顯示一段時(shí)間內(nèi)的數(shù)據(jù)變化或顯示各項(xiàng)之間的比較情況。
優(yōu)點(diǎn):
利用柱子的高度,反映數(shù)據(jù)的差異,肉眼對(duì)高度差異很敏感。
缺點(diǎn): 只適用中小規(guī)模的數(shù)據(jù)集。
柱狀圖最基本用法
from pyecharts import Bar
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
sales = [18888,20023,30989,8873,29876,5409]
bar = Bar('水果銷售情況')
bar.add('',fruits,sales,is_stack=True)
(bar.render())
add()方法用于添加數(shù)據(jù)。
當(dāng)要比較不同商家水果銷量情況,只需多次調(diào)用add()方法:
from pyecharts import Bar
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
bar = Bar('水果銷售情況')
bar.add('商家A',fruits,shop1_sales,is_stack=False)
shop2_sales = [4888,7023,3989,5873,8876,6409]
bar.add('商家B',fruits,shop2_sales,is_stack=False)
bar.render()
如果想在數(shù)據(jù)疊加顯示,只需將is_stack參數(shù)設(shè)置為True
from pyecharts import Bar
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
bar = Bar('水果銷售情況')
bar.add('商家A',fruits,shop1_sales,is_stack=True)
shop2_sales = [4888,7023,3989,5873,8876,6409]
bar.add('商家B',fruits,shop2_sales,is_stack=True)
bar.render()
下面是柱狀圖中常用方法和屬性介紹:
(1)add()方法中根據(jù)is_stack可以設(shè)定柱形圖是否疊加顯示
(2)is_more_utils=True 參數(shù)來(lái)設(shè)置最右側(cè)工具欄,對(duì)生成的圖進(jìn)行更多的操作,如將柱形圖更改為折線圖等
(3)標(biāo)記的使用:mark_point=[‘a(chǎn)verage']標(biāo)記點(diǎn),平均值;mark_line=[‘min','max','average']標(biāo)記線,最大值、最小值和平均值
(4)橫向柱形圖:is_convert=True,標(biāo)識(shí)交換X軸和Y軸
3、折線圖
常用折線圖來(lái)描繪統(tǒng)計(jì)事項(xiàng)總體指標(biāo)的動(dòng)態(tài)、研究對(duì)象間的依存關(guān)系以及總體中各部分的分配情況等。
# 普通折線圖
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
shop2_sales = [4888,7023,3989,5873,8876,6409]
line = Line('折線圖')
line.add('商家A', fruits, shop1_sales, mark_point=['max'])
line.add('商家B', fruits, shop2_sales, mark_point=['min'])
line.show_config()
line.render()
line()方法中有個(gè)is_smooth的參數(shù),將參數(shù)的值設(shè)置為True,折線圖的線條會(huì)以圓滑的趨勢(shì)變化,不像上圖那樣以直線的方式變化。
# 普通折線圖
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
shop2_sales = [4888,7023,3989,5873,8876,6409]
line = Line('折線圖')
line.add('商家A', fruits, shop1_sales, mark_point=['max'])
line.add('商家B', fruits, shop2_sales, mark_point=['min'], is_smooth=True)
line.show_config()
line.render()
上圖的商家A設(shè)置了is_smooth參數(shù)的值為True,商家B沒(méi)有設(shè)置is_smooth屬性。可以看到商家B的折線是以圓滑的趨勢(shì)變化的。
最常用的還有階梯折線圖和面積折線圖。
階梯折線圖
將line()方法的is_step參數(shù)設(shè)置為True。
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop2_sales = [4888,7023,3989,5873,8876,6409]
line = Line('折線圖')
line.add('商家B', fruits, shop2_sales, mark_point=['min'], is_step=True)
line.show_config()
line.render()
面積折線圖
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop2_sales = [4888,7023,3989,5873,8876,6409]
shop1_sales = [8888,3323,6989,8873,3876,15409]
line3 =Line("面積折線圖")
line3.add("商家A", fruits, shop1_sales, is_fill=True, line_opacity=0.2, area_opacity=0.4, symbol=None, mark_point=['max'])
line3.add("商家B", fruits, shop2_sales, is_fill=True, area_color='#a3aed5', area_opacity=0.3, is_smooth=True)
line3.show_config()
line3.render()
柱狀圖-折線圖
在柱狀圖上顯示折線圖也是常用的統(tǒng)計(jì)圖表。需要借助Overlap類實(shí)現(xiàn)。
from pyecharts import Bar, Line, Overlap
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
shop2_sales = [4888,7023,3989,5873,8876,6409]
bar = Bar("柱形圖-折線圖")
bar.add('bar', fruits, shop1_sales)
line = Line()
line.add('line', fruits, shop2_sales)
overlap = Overlap()
overlap.add(bar)
overlap.add(line)
overlap.show_config()
overlap.render()
4、餅圖
餅圖可以比較清楚地反映出部分與部分、部分與整體之間的數(shù)量關(guān)系.易于顯示每組數(shù)據(jù)相對(duì)于總數(shù)的大小.而且顯現(xiàn)方式直觀.
from pyecharts import Pie
fruits = ['蘋(píng)果','香蕉','鳳梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
pie = Pie('餅圖')
pie.add('芝麻餅', fruits, shop1_sales, is_label_show=True)
pie.show_config()
pie.render()
玫瑰花樣式餅圖
pie2 = Pie("餅圖-玫瑰圖示例", title_pos='center', width=900)
pie2.add("商家A", fruits, shop1_sales, center=[25, 50], is_random=True, radius=[25, 60], rosetype='radius')
pie2.add("商家B", fruits, shop2_sales, center=[75, 50], is_random=True, radius=[25, 60], rosetype='area', is_legend_show=False, is_label_show=True)
pie2.show_config()
pie2.render()
5、散點(diǎn)圖
散點(diǎn)圖又稱散點(diǎn)分布圖,是以一個(gè)變量為橫坐標(biāo),另一變量為縱坐標(biāo),利用散點(diǎn)(坐標(biāo)點(diǎn))的分布形態(tài)反映變量統(tǒng)計(jì)關(guān)系的一種圖形。特點(diǎn)是能直觀表現(xiàn)出影響因素和預(yù)測(cè)對(duì)象之間的總體關(guān)系趨勢(shì)。
靜態(tài)散點(diǎn)圖
from pyecharts import Scatter
scatter =Scatter("散點(diǎn)圖示例")
scatter.add("A", shop1_sales, shop2_sales)
scatter.add("B", shop1_sales[::-1], shop2_sales)
scatter.show_config()
scatter.render()
動(dòng)態(tài)散點(diǎn)圖
from pyecharts import EffectScatter
v1 =[5, 20, 36, 10, 10, 100]
v2 =[55, 60, 16, 20, 15, 80]
# 動(dòng)態(tài)散點(diǎn)圖
es =EffectScatter("動(dòng)態(tài)散點(diǎn)圖")
# v1 x坐標(biāo) v2 y坐標(biāo)
es.add('蘋(píng)果', v1, v2)
es.show_config()
es.render()
各種圖形動(dòng)態(tài)散點(diǎn)圖
from pyecharts import EffectScatter
es = EffectScatter("動(dòng)態(tài)散點(diǎn)圖各種圖形")
es.add("", [10], [10], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin")
es.add("", [20], [20], symbol_size=12, effect_scale=4.5, effect_period=4,symbol="rect")
es.add("", [30], [30], symbol_size=30, effect_scale=5.5, effect_period=5,symbol="roundRect")
es.add("", [40], [40], symbol_size=10, effect_scale=6.5, effect_brushtype='fill',symbol="diamond")
es.add("", [50], [50], symbol_size=16, effect_scale=5.5, effect_period=3,symbol="arrow")
es.add("", [60], [60], symbol_size=6, effect_scale=2.5, effect_period=3,symbol="triangle")
es.show_config()
es.render()
以上是使用pyecharts實(shí)現(xiàn)柱狀圖、折線圖、散點(diǎn)圖和餅圖的統(tǒng)計(jì)圖表。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

