Pyechart入門

標(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文件如下圖所示:

image.png

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

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
直方圖.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

14.地圖1

from pyecharts import Map
value = [155, 10, 66, 78]
attr = ["福建", "山東", "北京", "上海"]
map = Map("全國地圖示例")
map.add("", attr, value, maptype='china')
map

上面一段代碼的運(yùn)行結(jié)果如下圖所示:


image.png

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é)果如下圖所示:


image.png

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é)果如下圖所示:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評論 25 709
  • It's Thursday. Pa was putting on his boots. He put his fo...
    Mr_Oldman閱讀 171評論 0 0
  • 在生活中,沒有誰離不開誰。 當(dāng)一切必須離開和剝離,一定會恐懼和不安,會無助和患得患失,但一切終究都會過去。 當(dāng)一切...
    安然2011閱讀 282評論 0 0
  • 談到加班這個事,估計(jì)走入職場中的每個人都會面臨這樣一個很常見的問題,今天咱們來聊一聊。 什么樣的情況下公司會要求員...
    筱晨沐雨閱讀 575評論 4 0

友情鏈接更多精彩內(nèi)容