学会这个炫酷图表利器pyecharts,还怕不被公司重用?

一、安装

首先我们需要安装下pyecharts,通过pip指令直接安装即可。

pip install pyecharts

安装完成后, 可通过pip list指令查看python安装的库列表。查看pyecharts安装版本和是否安装成功。

二、导入模块

老规矩,为了故事的顺利发展,我们可以先导入本文所需的模块。

from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Line
from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.globals import SymbolType
from pyecharts.charts import Grid
from pyecharts.charts import WordCloud
from pyecharts.charts import Map
import random

注:以下图表生成都是在在 Jupyter Notebook 环境中实现。

三、柱状图

平时我们看到最多的就是柱状图了,pyecharts 生成柱状图也是非常简单。直接填入 x 轴和 y 轴的数据就行。

x = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
data_china = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
data_russia = [1.6, 5.4, 9.3, 28.4, 22.7, 60.7, 162.6, 199.2, 56.7, 43.8, 3.0, 4.9]

bar = Bar()
bar.add_xaxis(x)
bar.add_yaxis("降水量", data_china)
bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar - 降水示例"))
bar.rerender_notebook()

run运行程序后,就会得到如下所示柱状图:

当然pyecharts还支持链式调用,实现的功能一致,代码如下:

bar = (
    Bar()
    .add_xaxis(x)
    .add_yaxis('china', data_china)
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar - 降水示例"))
)
bar.render_notebook()

此外,还可以在一个柱状图中添加多个 y 轴记录,实现多个柱状对比,只需调用多一次 add_yaxis 即可。

bar = (
    Bar()
    .add_xaxis(x)
    .add_yaxis('china', data_china)
    .add_yaxis("sussia", data_russia)
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar - 多柱状图"))
)
bar.render_notebook()

有时候,柱状图太高不方便看,我们还可以将 x 轴和 y 轴互换,生成横向的柱状图。多柱状图和 xy 轴互换不冲突,可叠加使用。

bar = (
    Bar()
    .add_xaxis(x)
    .add_yaxis('china', data_china)
    .add_yaxis('russia', data_russia)
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar - 翻转 XY 轴"))
)
bar.render_notebook()

四、饼状图

饼状图也是使用频率很高的图表之一,尤其是适用于百分比类的图,可以很直观的看出来各个类别所占据总体份额的比例。

pie = (
    Pie()
    .add("", [list(z) for z in zip(x, data_china)])
    .set_global_opts(title_opts=opts.TitleOpts(title="饼图示例"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
pie.render_notebook()

圆环饼状图

pie = (
    Pie(init_opts=opts.InitOpts(width="600px", height="400px"))
    .add(
        series_name="降雨量",
        data_pair=[list(z) for z in zip(x, data_china)],
        radius=["50%", "70%"],
        label_opts=opts.LabelOpts(is_show=False, position="center"),
    )
    .set_global_opts(legend_opts=opts.LegendOpts(pos_left="legft", orient="vertical"))
    .set_series_opts(
        tooltip_opts=opts.TooltipOpts(
            trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
        ),
    label_opts=opts.LabelOpts(formatter="{b}: {c}")
    )
)
pie.render_notebook()

五、折线图

折线图通常是来展示数据在不同时间段的走势,例如比较经典的股市 K 线图就是折线图的一种。

line = (
    Line()
    .add_xaxis(x)
    .add_yaxis('china', data_china)
    .set_global_opts(title_opts=opts.TitleOpts(title="折线图示例"))
)
line.render_notebook()

同样,和柱状图类似,折线图也可以在一个图中添加多个 y 轴记录。

line = (
    Line()
    .add_xaxis(x)
    .add_yaxis('china', data_china)
    .add_yaxis('russis', data_russia)
    .set_global_opts(title_opts=opts.TitleOpts(title="双折线图"))
)
line.render_notebook()

当然了还有阶梯折线图,同样可以实现。

line = (
    Line()
    .add_xaxis(x)
    .add_yaxis('china', data_china, is_step=True)
    .set_global_opts(title_opts=opts.TitleOpts(title="阶梯折线图"))
)
line.render_notebook()

六、散点图

scatter = (
    EffectScatter()
    .add_xaxis(x)
    .add_yaxis("", data_china)
    .set_global_opts(title_opts=opts.TitleOpts(title="散点图示例"))
)
scatter.render_notebook()

数据对比不是很清晰,我们可以给散点图加上网格,使各个点对应的 y 轴数据更清晰可见。

scatter = (
    EffectScatter()
    .add_xaxis(x)
    .add_yaxis("china", data_china, symbol=SymbolType.ARROW)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="散点图-分割线"),
        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
    )
)
scatter.render_notebook()

我们还可以指定点的形状,还可以在一个散点图上加多个 y 轴记录。这些配置就像积木一样,随意堆叠。

scatter = (
    EffectScatter()
    .add_xaxis(x)
    .add_yaxis("china", [x + 30 for x in data_russia],symbol=SymbolType.ARROW)
    .add_yaxis("russia", data_russia, symbol=SymbolType.TRIANGLE)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="分割线-散点图"),
        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
    )
)
scatter.render_notebook()

七、图表合并

有时候,我们还要把多种图放在一张图上来集中显示,pyechars 也想到了。基本步骤就是先单独生成各自类别的图,然后用 Grid 将二者合并起来即可。

比如我们想将柱状图和折线图放在一起,那就先分别生成 Bar 和 Line,然后将二者合并即可。

from pyecharts.charts import Grid

bar = (
    Bar()
    .add_xaxis(x)
    .add_yaxis('china', data_china)
    .add_yaxis("sussia", data_russia)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="多图合并"),
    )
)

line = (
    Line()
    .add_xaxis(x)
    .add_yaxis("蒸发量", [x + 50 for x in data_china]
    )
)

bar.overlap(line)
grid = Grid()
grid.add(bar, opts.GridOpts(pos_left="5%", pos_right="5%"), is_control_axis_index=True)
grid.render_notebook()

八、词云

pyechars 对词云同样也是可以的,中文也完全没问题,不会出现乱码。

import pyecharts.options as opts
from pyecharts.charts import WordCloud

data = [("生活资源", "999"),("供热管理", "888"),("供气质量", "777"),("生活用水管理", "688"),("一次供水问题", "588"),("交通运输", "516"),("城市交通", "515"),("环境保护", "483"),("房地产管理", "462"),("城乡建设", "449"),("社会保障与福利", "429"),("社会保障", "407"),("文体与教育管理", "406"),("公共安全", "406"),("公交运输管理", "386"),("出租车运营管理", "385"),("供热管理", "375"),("市容环卫", "355"),("自然资源管理", "355"),("粉尘污染", "335"),("噪声污染", "324"),("土地资源管理", "304"),("物业服务与管理", "304"),("医疗卫生", "284"),("粉煤灰污染", "284"),("占道", "284"),("供热发展", "254"),("农村土地规划管理", "254"),("生活噪音", "253"),("供热单位影响", "253"),("城市供电", "223"),("房屋质量与安全", "223"),("大气污染", "223"),("房屋安全", "223"),("文化活动", "223"),("拆迁管理", "223"),("公共设施", "223"),("供气质量", "223"),("供电管理", "223"),("燃气管理", "152"),("教育管理", "152"),("医疗纠纷", "152"),("执法监督", "152"),("设备安全", "152"),("政务建设", "152"),("县区、开发区", "152"),("宏观经济", "152"),("教育管理", "112"),("社会保障", "112"),("生活用水管理", "112"),("物业服务与管理", "112"),("分类列表", "112"),("农业生产", "112"),("二次供水问题", "112"),("城市公共设施", "92"),("拆迁政策咨询", "92"),("物业服务", "92"),("物业管理", "92"),("社会保障保险管理", "92"),("低保管理", "92"),("文娱市场管理", "72"),("城市交通秩序管理", "72"),("执法争议", "72"),("商业烟尘污染", "72"),("占道堆放", "71"),("地上设施", "71"),("水质", "71"),("无水", "71"),("供热单位影响", "71"),("人行道管理", "71"),("主网原因", "71"),("集中供热", "71"),("客运管理", "71"),("国有公交(大巴)管理", "71"),("工业粉尘污染", "71"),("治安案件", "71"),("压力容器安全", "71"),("身份证管理", "71"),("群众健身", "41"),("工业排放污染", "41"),("破坏森林资源", "41"),("市场收费", "41"),("生产资金", "41"),("生产噪声", "41"),("农村低保", "41"),("劳动争议", "41"),("劳动合同争议", "41"),("劳动报酬与福利", "41"),("医疗事故", "21"),("停供", "21"),("基础教育", "21"),("职业教育", "21"),("物业资质管理", "21"),("拆迁补偿", "21"),("设施维护", "21"),("市场外溢", "11"),("占道经营", "11"),("树木管理", "11"),("农村基础设施", "11"),("无水", "11"),("供气质量", "11"),("停气", "11"),("市政府工作部门(含部门管理机构、直属单位)", "11"),("燃气管理", "11"),("市容环卫", "11"),("新闻传媒", "11"),("人才招聘", "11"),("市场环境", "11"),("行政事业收费", "11"),("食品安全与卫生", "11"),("城市交通", "11"),("房地产开发", "11"),("房屋配套问题", "11"),("物业服务", "11"),("物业管理", "11"),("占道", "11"),("园林绿化", "11"),("户籍管理及身份证", "11"),("公交运输管理", "11"),("公路(水路)交通", "11"),("房屋与图纸不符", "11"),("有线电视", "11"),("社会治安", "11"),("林业资源", "11"),("其他行政事业收费", "11"),("经营性收费", "11"),("食品安全与卫生", "11"),("体育活动", "11"),("有线电视安装及调试维护", "11"),("低保管理", "11"),("劳动争议", "11"),("社会福利及事务", "11"),("一次供水问题", "11"),]

wordCloud = (
    WordCloud()
    .add(series_name="热点分析", data_pair=data, word_size_range=[6, 66])
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="热点分析", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
)

九、地图

有时我们会希望将数据展示在地图上,比如全国疫情状况,全国各省份人口数据,微信好友各省份分布等。

provinces = ['广东', '北京', '上海', '湖南', '重庆', '新疆', '河南', '黑龙江', '浙江', '台湾']
values = [random.randint(1, 1024) for x in range(len(provinces))]

map = (
    Map()
    .add("", [list(z) for z in zip(provinces, values)], "china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="中国地图示例"),
        visualmap_opts=opts.VisualMapOpts(max_=1024, is_piecewise=True),
    )

)
map.render_notebook()

十、总结

今天我们通过 pyecharts 绘制了几种常用图表,当然绘制图表都有固定的套路流程。

生成图表大致可分为三个步骤,准备相关数据、利用链式调用法设置数据和相关配置、调用 render_notebook() 或者 render() 函数生成图表。

到此这篇关于学会这个炫酷图表利器pyecharts,还怕不被公司重用?的文章就介绍到这了,更多相关python pyecharts内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python用pyecharts实现地图数据可视化

    有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较.但直方图在视觉上并不能很好突出地区间的差异,因此考虑地理可视化,通过地图上位置(地理位置)和颜色(颜色深浅代表数值差异)两个元素加以体现.在本文案例中,基于第三方库pyecharts,对中国各省2010-2019年的GDP进行绘制. 我们先来看看最终效果: 关于绘图数据 基于时间和截面两个维度,可把数据分为截面数据.时间序列及面板数据.在本文案例中,某一年各省的GDP属于截面数据,多年各省的GDP属于面板数据.因此,

  • python使用pyecharts库画地图数据可视化的实现

    python使用pyecharts库画地图数据可视化导库中国地图代码结果世界地图代码结果省级地图代码结果地级市地图代码结果 导库 from pyecharts import options as opts from pyecharts.charts import Map 中国地图 代码 data = [('湖北', 9074),('浙江', 661),('广东', 632),('河南', 493),('湖南', 463), ('安徽', 340),('江西', 333),('重庆', 275),

  • Python 数据可视化pyecharts的使用详解

    什么是pyecharts? pyecharts 是一个用于生成 Echarts 图表的类库. echarts是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生成 Echarts 图表的类库.实际上就是 Echarts 与 Python 的对接. 使用 pyecharts可以生成独立的网页,也可以在 flask , Django中集成使用. pyecharts包含的图表 Bar(柱状图/条形图) Bar3D(3D 柱状图) Boxplot(箱形图) Effe

  • Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解

    python可以在处理各种数据时,如果可以将这些数据,利用图表将其可视化,这样在分析处理起来,将更加直观.清晰,以下是 利用 PyEcharts 常用图表的可视化Demo, 开发环境 python3 柱状图 基本柱状图 from pyecharts import Bar # 基本柱状图 bar = Bar("基本柱状图", "副标题") bar.use_theme('dark') # 暗黑色主题 bar.add('真实成本', # label ["1月&q

  • Python绘制K线图之可视化神器pyecharts的使用

    K线图 概念 股市及期货市bai场中的K线图的du画法包含四个zhi数据,即开盘dao价.最高价.最低价zhuan.收盘价,所有的shuk线都是围绕这四个数据展开,反映大势的状况和价格信息.如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可画出周K线图.月K线图.研究金融的小伙伴肯定比较熟悉这个,那么我们看起来比较复杂的K线图,又是这样画出来的,本文我们将一起探索K线图的魅力与神奇之处吧! K线图 用处 K线图用处于股票分析,作为数据分析,以后的进入大数据肯定是一个趋势和热潮,K线图的专

  • Python绘制词云图之可视化神器pyecharts的方法

    自定义图片生成词云图的多种方法 有时候我们会根据具体的场景来结合图片展示词云,比如我分析的是美团评论,那么最好的展示方法就是利用美团的logo来做词云图的底图展示,下面我们就介绍几种常用的方法! 根据喜爱的图片生成词云轮廓 from wordcloud import WordCloud import jieba import matplotlib.pyplot as plt import numpy as np import PIL.Image as Image text = open(u'da

  • Python数据可视化 pyecharts实现各种统计图表过程详解

    1.pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图等统计图表. 2.柱状图 适用场合是二维数据集(每个数据点包括两个值x和y),但只有一个维度需要比较,用于显示一段时间内的数据变化或显示各项之间的比较情况. 优点: 利用柱子的高度,反映数据的差异,肉眼对高度差异很敏感. 缺点: 只适用中小规模的数据集. 柱状图最基本用法 from pyechart

  • 学会这个炫酷图表利器pyecharts,还怕不被公司重用?

    一.安装 首先我们需要安装下pyecharts,通过pip指令直接安装即可. pip install pyecharts 安装完成后, 可通过pip list指令查看python安装的库列表.查看pyecharts安装版本和是否安装成功. 二.导入模块 老规矩,为了故事的顺利发展,我们可以先导入本文所需的模块. from pyecharts.charts import Bar from pyecharts.charts import Pie from pyecharts.charts impor

  • 利用Python生成Excel炫酷图表

    目录 前言 1.xlswriter库 2.生成折线图 3.生成柱状图 4.生成饼图 5.实战拓展 前言 本文对Python 自动化操作Excel并生成图表,做了详细的分析和说明 我们先来看一下python中能操作Excel的常用库对比 1.xlswriter库 XlsxWriter是一个用来写Excel2007和xlsx文件格式的python模块.它可以用来写文本.数字.公式并支持单元格格式化.图片.图表.文档配置.自动过滤等特性 优点:功能更多.文档高保真.扩展格式类型.更快并可配置 缺点:不

  • 基于python利用Pyecharts使高清图片导出并在PPT中动态展示

    目录 1.前言 2.导出png格式图片 3.如何在PPT中展示pyecharts图片 1.前言 pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图”.pyecharts可以展示动态图,在线报告使用比较美观,并且展示数据方便,鼠标悬停在图上,即可显示数值.标签等.pyecharts画出的图很好看,但是怎么展示是个

  • 利用Python绘制酷炫的3D地图

    目录 1.重庆市3D地图 2.中国3D地图一 3.中国3D地图二 4.中国3D地图三 5.地球展示 之前我们介绍了很多Python地图可视化的内容,本次主要介绍如何Python绘制3D地图,还是比较神奇的,下面让我们一起一饱眼福吧! 1.重庆市3D地图 from pyecharts import options as opts from pyecharts.charts import Map3D from pyecharts.globals import ChartType # 经纬度 exam

  • Python可视化神器pyecharts之绘制地理图表练习

    目录 炫酷地图 3D炫酷地图模板系列 重庆市3D地图展示 中国3D地图 中国3D数据地图(适合做数据可视化) 全国行政区地图(带城市名字) 地球展示 炫酷地图 前期我们介绍了很多的地图模板,不管是全球的还是中国的,其实我感觉都十分的炫酷,哈哈哈,可是还有更加神奇的,更加炫酷的地图模板,下面让我们一起一饱眼福吧! 3D炫酷地图模板系列 重庆市3D地图展示 from pyecharts import options as opts from pyecharts.charts import Map3D

  • jQuery Validator验证Ajax提交表单的方法和Ajax传参的方法

    serialize() 方法通过序列化表单值,创建 URL 编码文本字符串.代替了一个一个传参的方式 以往写的ajax传参方式 $.ajax({ url : "${ctx}/SJStandardDamPartition/insertOrUpdateDamPartition", type : "post", dataType : "json", data: {beginsectionid:function(){ return $('#number

  • PostgreSQL教程(三):表的继承和分区表详解

    一.表的继承: 这个概念对于很多已经熟悉其他数据库编程的开发人员而言会多少有些陌生,然而它的实现方式和设计原理却是简单易懂,现在就让我们从一个简单的例子开始吧.     1. 第一个继承表:   复制代码 代码如下: CREATE TABLE cities (   --父表         name        text,         population float,         altitude     int     );     CREATE TABLE capitals (

  • MySQL删除表数据的方法

    在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句.DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法:       DELETE FROM table1       TRUNCATE TABLE table1 其中第二条记录中的TABLE是可选的. 如果要删除表中的部分记录,只能使用DELETE语句.

  • form表单传递数组数据、php脚本接收的实例

    通过数组传递表单数据,可以保存数据之间的业务属性关系,比如有很多Student,每隔Student都有姓名.年龄.性别.爱好等表单信息.提交表单后还需要针对每个student进行处理或者保存.这样肯定需要为每个student的这些属性表单建立起关联关系,一种方式是根据属性表单的name上加特殊标记进行识别,但是数组传递表单就能使表单数据更结构化. 例子如下: <input type="hidden" name="msginfo[name][]" value=&

  • MySql中把一个表的数据插入到另一个表中的实现代码

    小编今天在写一个 将一个数据库的表数据 导入到 另一个数据库的表的时候 我是这么写的 复制代码 代码如下: <?php header("Content-type:text/html;charset=utf-8"); $conn = mysql_connect("localhost","root","");mysql_select_db('nnd',$conn);mysql_select_db('ahjk',$conn);

随机推荐