標題中的英文首字母大寫比較規(guī)范北发,但在python實際使用中均為小寫臼节。
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)中可以獲得比本文更詳細的pyecharts庫的使用方法袱巨。
下面代碼的開發(fā)環(huán)境為jupyter notebook,使用在jupyter notebook中的截圖表示運行結果碳抄。
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
是使用阿里云作為下載源剖效,可以極大加快下載速度嫉入。
如果安裝失敗,請在cmd中運行命令:pip install pytest-runner
璧尸。然后再次使用pip安裝pyecharts庫咒林。
2.柱形圖
第1行代碼引入庫,第2行代碼初始化1個Bar對象賦值給bar變量爷光。
第3-7行代碼準備Bar對象的add方法的3個關鍵字參數(shù)垫竞,第1個關鍵字參數(shù)name是圖例的名稱,第2個關鍵字參數(shù)x_axis是x軸的標記瞎颗,第3個關鍵字參數(shù)y_axis是每個柱形的高度件甥。
將3個關鍵字參數(shù)打包成1個數(shù)據(jù)類型為字典的變量kwargs。
kwargs作為參數(shù)傳入Bar對象的add方法中時哼拔,需要使用**kwargs引有,這樣可以使其自動解包,字典中的鍵值對會對應函數(shù)需要的參數(shù)倦逐。
最后1行譬正,Bar對象的render方法會產生一個html文件,可以用瀏覽器打開該文件進行查看檬姥。
from pyecharts import Bar
bar = Bar('我的第一個圖表','這里是副標題')
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對象畫出。
與柱形圖的不同之處是實例化Bar對象時多了1個參數(shù)bar_category_gap健民,含義是每個柱子之間的間隔抒巢,如果設置為0,則畫直方圖秉犹。
bar = Bar('我的第一個圖表','這里是副標題')
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')
上面一段代碼的運行結果如下圖所示:
5.標記線和標記點示例
import pyecharts as pye
x = ["襯衫", "羊毛衫", "雪紡衫","褲子", "高跟鞋", "襪子"]
y1 =[5, 20, 36, 10, 75, 90]
y2 = [10, 25, 8, 60, 20, 80]
bar = pye.Bar("標記線和標記點示例")
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
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示:
12.散點圖
from pyecharts import Scatter
v1 = [10, 20, 30, 40, 50, 60]
v2 = [10, 20, 30, 40, 50, 60]
scatter = Scatter("散點圖示例")
scatter.add("A", v1, v2)
scatter.add("B", v1[::-1], v2)
scatter
上面一段代碼的運行結果如下圖所示:
13.散點圖2
from pyecharts import Scatter
v1 = [10, 20, 30, 40, 50, 60]
v2 = [10, 20, 30, 40, 50, 60]
scatter = Scatter("散點圖示例")
scatter.add("A", v1, v2)
scatter.add("B", v1[::-1], v2, is_visualmap=True,
visual_type='size', visual_range_size=[20,
80])
scatter
上面一段代碼的運行結果如下圖所示:
14.地圖1
from pyecharts import Map
value = [155, 10, 66, 78]
attr = ["福建", "山東", "北京", "上海"]
map = Map("全國地圖示例")
map.add("", attr, value, maptype='china')
map
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示:
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
上面一段代碼的運行結果如下圖所示: