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文件如下图所示:

image.png

在浏览器中查看bar01.html文件如下图所示:

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

直方图.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')

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

image.png

14.地图1

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

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

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

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

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

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

image.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 利用Python发送email

    引入smtplib和email.mime.text.MIMEText两个库可以完成发送邮件的功能 代码逻辑顺序:初始化邮箱服务——>使用用户名和密码登录邮箱—...

    潇洒坤
  • Python程序结构2

    上面一段代码的运行结果如下,从下面的结果可以看出速度差距为2、3倍左右,当数据量更大时,可能差距更大。:

    潇洒坤
  • 基于Pandas的DataFrame、Series对象的apply方法

    这篇文章主要讲解DataFrame、Series对象的apply方法。 豆瓣排名前250电影数据集下载链接: https://pan.baidu.com/s/...

    潇洒坤
  • 推荐系统中的常用算法——DeepWalk算法

    DeepWalk算法是在KDD2014中提出的算法,最初应用在图表示(Graph Embedding)方向,由于在推荐系统中,用户的行为数据固然的可以表示成图的...

    zhaozhiyong
  • IDEA Pycharm WebStorm JetBranis全版本 2020年 最新激活方式

    2020-09-30 亲测有效:IntelliJ IDEA 2020.1 最新全家桶系列产品激活破解方法, JetBrains 全家桶激活

    梅花
  • Dance In Heap(三):一些堆利用的方法(中)

    0x00 前面的话 在前一篇堆的利用方法里面,我们简单的提了一下UAF,并主要对从 bin 中释放 chunk 的操作,即 unlink 宏、unsortedb...

    FB客服
  • 漏洞|74cms 3.6 前台SQL注入+Python脚本小练习

    最近有个74cms v4.2.3任意文件下载的漏洞,本来想试着和74cms 3.6 前台SQL注入漏洞结合下然后取出QS_pwdhash的值进行MD5碰撞,可...

    漏斗社区
  • 解读 IoC 框架 InversifyJS

    InversityJS 是一个 IoC 框架。IoC(Inversion of Control) 包括依赖注入(Dependency Injection) 和依...

    牧云云
  • 设计之接口行为的扩展 原

        接口行为的扩展,经常面临这样的问题,之前已经定义好一个接口,且该接口已经在很多地方使用到,现在我们想让新增新方法。

    克虏伯
  • 深入理解 依赖注入

    相信所有面试java开发的童鞋一定都被问到过是否使用过Spring,是否了解其IOC容器,为什么不直接使用工厂模式,以及究竟IOC和DI区别在于哪里这种问题。今...

    眯眯眼的猫头鹰

扫码关注云+社区

领取腾讯云代金券