標(biāo)題中的英文首字母大寫比較規(guī)范,但在python實(shí)際使用中均為小寫。
2018年8月1日筆記
0.簡介
pyecharts是一個用于生成echarts圖表的類庫。echarts是百度開源的一個數(shù)據(jù)可視化庫,用echarts生成的圖可視化效果非常棒。使用pyechart庫可以在python中生成echarts數(shù)據(jù)圖。
官網(wǎng):http://pyecharts.org
Github:https://github.com/pyecharts/pyecharts/
在官網(wǎng)中可以獲得比本文更詳細(xì)的pyecharts庫的使用方法。
下面代碼的開發(fā)環(huán)境為jupyter notebook,使用在jupyter notebook中的截圖表示運(yùn)行結(jié)果。
1.安裝庫
打開cmd,在cmd中使用pip命令安裝pyecharts庫,如下所示:
pip install pyecharts -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
其中-i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com是使用阿里云作為下載源,可以極大加快下載速度。
如果安裝失敗,請?jiān)赾md中運(yùn)行命令:pip install pytest-runner 。然后再次使用pip安裝pyecharts庫。
2.柱形圖
第1行代碼引入庫,第2行代碼初始化1個Bar對象賦值給bar變量。
第3-7行代碼準(zhǔn)備Bar對象的add方法的3個關(guān)鍵字參數(shù),第1個關(guān)鍵字參數(shù)name是圖例的名稱,第2個關(guān)鍵字參數(shù)x_axis是x軸的標(biāo)記,第3個關(guān)鍵字參數(shù)y_axis是每個柱形的高度。
將3個關(guān)鍵字參數(shù)打包成1個數(shù)據(jù)類型為字典的變量kwargs。
kwargs作為參數(shù)傳入Bar對象的add方法中時,需要使用**kwargs,這樣可以使其自動解包,字典中的鍵值對會對應(yīng)函數(shù)需要的參數(shù)。
最后1行,Bar對象的render方法會產(chǎn)生一個html文件,可以用瀏覽器打開該文件進(jìn)行查看。
from pyecharts import Bar
bar = Bar('我的第一個圖表','這里是副標(biāo)題')
kwargs = dict(
name = '柱形圖',
x_axis = ['襯衫','羊毛衫','雪紡衫','褲子','高跟鞋','襪子'],
y_axis = [5,20,36,10,75,90]
)
bar.add(**kwargs)
bar.render('bar01.html')
文件夾中生成的bar01.html文件如下圖所示:

在瀏覽器中查看bar01.html文件如下圖所示:

3.直方圖
在pyecharts中,直方圖也是使用Bar對象畫出。
與柱形圖的不同之處是實(shí)例化Bar對象時多了1個參數(shù)bar_category_gap,含義是每個柱子之間的間隔,如果設(shè)置為0,則畫直方圖。
bar = Bar('我的第一個圖表','這里是副標(biāo)題')
kwargs = dict(
name = '柱形圖',
x_axis = ['襯衫','羊毛衫','雪紡衫','褲子','高跟鞋','襪子'],
y_axis = [5,20,36,10,75,90],
bar_category_gap = 0
)
bar.add(**kwargs)
bar

4.堆疊柱狀圖
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫","褲子", "高跟鞋", "襪子"]
y1 =[5, 20, 36, 10, 75, 90]
y2 = [10, 25, 8, 60, 20, 80]
bar = pye.Bar("柱狀圖數(shù)據(jù)堆疊示例")
title1 = '商家A'
title2 = '商家B'
bar.add(title1,x,y1,is_stack=True)
bar.add(title2,x,y2,is_stack=True)
bar.render('bar02.html')
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

5.標(biāo)記線和標(biāo)記點(diǎn)示例
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫","褲子", "高跟鞋", "襪子"]
y1 =[5, 20, 36, 10, 75, 90]
y2 = [10, 25, 8, 60, 20, 80]
bar = pye.Bar("標(biāo)記線和標(biāo)記點(diǎn)示例")
title1 = '商家A'
title2 = '商家B'
bar.add(title1,x,y1,mark_point=['average'])
bar.add(title2,x,y2,mark_line=['min','max'])
bar.render('bar04.html')
bar
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

6.條形圖
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫","褲子", "高跟鞋", "襪子"]
y1 =[5, 20, 36, 10, 75, 90]
y2 = [10, 25, 8, 60, 20, 80]
bar = pye.Bar("x軸與y軸交換")
title1 = '商家A'
title2 = '商家B'
bar.add(title1,x,y1)
bar.add(title2,x,y2,is_convert=True)
bar.render('bar03.html')
bar
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

7. 折線圖
from pyecharts import Line
attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
v1 = [5, 20, 36, 10, 10, 100]
v2 = [55, 60, 16, 20, 15, 80]
line = Line("折線圖示例")
line.add("商家A", attr, v1, mark_point=["average"])
line.add("商家B", attr, v2, is_smooth=True,
mark_line=["max", "average"])
line.render('line01.html')
line
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

8.折線圖2
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
y1 = [5, 20, 36, 10, 10, 100]
y2 = [55, 60, 16, 20, 15, 80]
line = pye.Line("折線圖示例")
label1 = '商家A'
label2 = '商家B'
kwargs = dict(
mark_point=['average','max','min'],
mark_point_symbol = 'diamond',
mark_point_textcolor = '#40ff27'
)
line.add(label1,x,y1,**kwargs)
kwargs2 = dict(
mark_point=['average','max','min'],
mark_point_symbol = 'arrow',
mark_point_symbolsize = 40
)
line.add(label2,x,y2,**kwargs2)
line
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

9.面積圖
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
y1 = [5, 20, 36, 10, 10, 100]
y2 = [55, 60, 16, 20, 15, 80]
line = pye.Line("面積圖示例")
label1 = '商家A'
label2 = '商家B'
kwargs = dict(
if_fill = True,
line_opacity = 0.2,
area_opacity = 0.4,
symbol = None
)
line.add(label1,x,y1,**kwargs)
kwargs2 = dict(
s_fill= True,
area_color= '#000',
area_opacity= 0.3,
is_smooth= True
)
line.add(label2,x,y2,**kwargs2)
line
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

10.餅圖
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
y = [11, 12, 13, 10, 10, 10]
pie = pye.Pie("餅圖示例")
pie.add("",x,y,is_label_show=True)
pie
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

11.餅圖2
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
y = [11, 12, 13, 10, 10, 10]
pie = pye.Pie("餅圖-圓環(huán)圖示例",title_pos='center')
kwargs = dict(
radius = (40,75),
label_text_color = None,
is_label_show = True,
legend_orient = 'vertical',
legend_pos = 'left'
)
pie.add("",x,y,**kwargs)
pie
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

12.散點(diǎn)圖
from pyecharts import Scatter
v1 = [10, 20, 30, 40, 50, 60]
v2 = [10, 20, 30, 40, 50, 60]
scatter = Scatter("散點(diǎn)圖示例")
scatter.add("A", v1, v2)
scatter.add("B", v1[::-1], v2)
scatter
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

13.散點(diǎn)圖2
from pyecharts import Scatter
v1 = [10, 20, 30, 40, 50, 60]
v2 = [10, 20, 30, 40, 50, 60]
scatter = Scatter("散點(diǎn)圖示例")
scatter.add("A", v1, v2)
scatter.add("B", v1[::-1], v2, is_visualmap=True,
visual_type='size', visual_range_size=[20,
80])
scatter
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

14.地圖1
from pyecharts import Map
value = [155, 10, 66, 78]
attr = ["福建", "山東", "北京", "上海"]
map = Map("全國地圖示例")
map.add("", attr, value, maptype='china')
map
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

15.地圖2
from pyecharts import Map
value = [20, 190, 253, 77, 65]
attr = ['汕頭市', '汕尾市', '揭陽市', '陽江市', '肇慶市']
map = Map("廣東地圖示例", width=1200,
height=600)
map.add("", attr, value, maptype='廣東',
is_visualmap=True,
visual_text_color='#000',is_label_show=True)
map
上面一段代碼的運(yùn)行結(jié)果如下圖所示:

16.詞云
from pyecharts import WordCloud
name_list = ['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World',
'Charter Communications','Chick Fil A', 'Planet Fitness',
'Pitch Perfect', 'Express','Home', 'Johnny Depp',
'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary EllenMark',
'Farrah Abraham','Rita Ora', 'Serena Williams',
'NCAA baseball tournament','Point Break']
value_list = [10000, 6181, 4386, 4055, 2467, 2244,
1898, 1484, 1112,965, 847, 582, 555,
550, 462, 366, 360, 282, 273, 265]
wordcloud = WordCloud(width=800, height=500)
wordcloud.add("", name, value, word_size_range=[20, 100])
wordcloud
上面一段代碼的運(yùn)行結(jié)果如下圖所示:
