Pyechart入门

标题中的英文首字母大写比较规范,但在python实际使用中均为小写。

2018年8月1日笔记

0.简介

pyecharts是一个用于生成echarts图表的类库。echarts是百度开源的一个数据可视化库,用echarts生成的图可视化效果非常棒。使用pyechart库可以在python中生成echarts数据图。
官网:http://pyecharts.org
Github:https://github.com/pyecharts/pyecharts/
在官网中可以获得比本文更详细的pyecharts库的使用方法。
下面代码的开发环境为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个关键字参数,第1个关键字参数name是图例的名称,第2个关键字参数x_axis是x轴的标记,第3个关键字参数y_axis是每个柱形的高度。
将3个关键字参数打包成1个数据类型为字典的变量kwargs。
kwargs作为参数传入Bar对象的add方法中时,需要使用**kwargs,这样可以使其自动解包,字典中的键值对会对应函数需要的参数。
最后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文件如下图所示:

10345471-9e1cb10e3b5a110a.png
image.png

在浏览器中查看 bar01.html文件如下图所示:
10345471-ca4eb34c22a485f1.png
image.png

3.直方图

在pyecharts中,直方图也是使用Bar对象画出。
与柱形图的不同之处是实例化Bar对象时多了1个参数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
10345471-3453dcdbd5805a6d.png
直方图.png

4.堆叠柱状图

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,is_stack=True)
bar.add(title2,x,y2,is_stack=True)
bar.render('bar02.html')

上面一段代码的运行结果如下图所示:


10345471-6ddb0566e45b7d67.png
image.png

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

上面一段代码的运行结果如下图所示:


10345471-4227e85b3a640f9b.png
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

上面一段代码的运行结果如下图所示:


10345471-4243212a90f88e8d.png
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

上面一段代码的运行结果如下图所示:


10345471-e6a170b2a416d8ab.png
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

上面一段代码的运行结果如下图所示:


10345471-f1f5d51737ca3ad0.png
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

上面一段代码的运行结果如下图所示:


10345471-d01480cb1a354efb.png
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

上面一段代码的运行结果如下图所示:


10345471-51d099eca804b776.png
image.png

11.饼图2

import pyecharts as pye

x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
y =  [11, 12, 13, 10, 10, 10]
pie = pye.Pie("饼图-圆环图示例",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

上面一段代码的运行结果如下图所示:


10345471-f79b563a0d81fbc5.png
image.png

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

上面一段代码的运行结果如下图所示:


10345471-e8f7ffaf229dd75b.png
image.png

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

上面一段代码的运行结果如下图所示:


10345471-db77691779763416.png
image.png

14.地图1

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

上面一段代码的运行结果如下图所示:


10345471-83150f62cfd34782.png
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

上面一段代码的运行结果如下图所示:


10345471-039303329eefebfc.png
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

上面一段代码的运行结果如下图所示:


10345471-93537e1173b1267a.png
image.png
  • 7
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值