博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python数据可视化神器,我就服它
阅读量:2070 次
发布时间:2019-04-29

本文共 8882 字,大约阅读时间需要 29 分钟。

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取


Pyecharts介绍

Pyecharts 是一个用于生成 Echarts 图表的类库。常规的Echarts 是由百度开源的一个数据可视化 JS 库,主要用于数据可视化。简单来说,Pyecharts是一款将python与echarts结合的强大的数据可视化工具。

使用 Pyecharts 可以生成独立的网页,也可以在 flask , Django 中集成使用。

项目介绍:

http://pyecharts.herokuapp.com/

项目源码:

https://github.com/pyecharts/pyecharts

Pyecharts支持30+种可视化图表

得益于Echarts 项目,目前Pyecharts支持 30+ 种常见图表,如下所示:

  • Bar(柱状图/条形图)
  • Bar3D(3D 柱状图)
  • Boxplot(箱形图)
  • EffectScatter(散点图)
  • Funnel(漏斗图)
  • Gauge(仪表盘)
  • Geo(地理坐标系)
  • Graph(关系图)
  • HeatMap(热力图)
  • Kline(K线图)
  • Line(折线/面积图)
  • Line3D(3D 折线图)
  • Liquid(水球图)
  • Map(地图)
  • Parallel(平行坐标系)
  • Pie(饼图)
  • Polar(极坐标系)
  • Radar(雷达图)
  • Sankey(桑基图)
  • Scatter(散点图)
  • Scatter3D(3D 散点图)
  • ThemeRiver(主题河流图)
  • WordCloud(词云图)
    在这里插入图片描述

Pyecharts安装

1、pip 安装

# 安装 v1 以上版本$ pip install pyecharts -U# 如果需要安装 0.5.11 版本的开发者,可以使用# pip install pyecharts==0.5.11

2、源码安装

# v1 以上版本$ git clone https://github.com/pyecharts/pyecharts.git# 如果需要安装 0.5.11 版本,请使用 git clone https://github.com/pyecharts/pyecharts.git -b v05x$ cd pyecharts$ pip install -r requirements.txt$ python setup.py install

在使用pip安装库时,由于墙的原因,下载时可能会出现断线和速度过慢的问题导致下载失败,所以建议通过豆瓣源或清华镜像来进行下载:

# 豆瓣源下载pip install -i https://pypi.douban.com/simple pyecharts# 清华镜像源pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

PS: 这里要专门说明一下,自从 0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表(Geo、Map),可自行安装对应的地图文件包。

# 通过pip命令进行安装pip install echarts-countries-pypkgpip install echarts-china-provinces-pypkgpip install echarts-china-cities-pypkg

Pyecharts官方示例实战

现在我们来开始正式使用pycharts,这里我们先直接使用官方的数据,感受一下可视化展示效果。

from pyecharts.charts import Barfrom pyecharts import options as opts# V1 版本开始支持链式调用bar = (    Bar()    .add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])    .add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])    .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])    .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况")))bar.render_notebook()

在这里顺便安利一下jupyter,pyecharts在v0.1.9.2版本开始,在jupyter上可以直接调用实例(例如上方直接调用bar.render_notebook())就可以将图表直接展示出来,非常方便。

在这里插入图片描述
如果脚本在非jupyter环境运行,图表渲染方法需改为:

bar.render()

默认情况下,pycharts生成图表为HTML格式,也支持生成png图片格式,如下:

from snapshot_selenium import snapshot as driverfrom pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.render import make_snapshotdef bar_chart() -> Bar:    c = (        Bar()        .add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])        .add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])        .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])        .reversal_axis()        .set_series_opts(label_opts=opts.LabelOpts(position="right"))        .set_global_opts(title_opts=opts.TitleOpts(title="Bar-测试渲染图片"))    )    return c# 需要安装 snapshot-selenium 或者 snapshot-phantomjsmake_snapshot(driver, bar_chart().render(), "bar.png")

在这里插入图片描述

Pyecharts几种高频使用的可视化图表

在上面官方示例中的柱状图表我们已经能感受到pycharts可视化功能的强大,最后再介始几种日常工作中常用的可视化图表及对应示例。

pie饼状图

from pyecharts import options as optsfrom pyecharts.charts import Piefrom pyecharts.faker import Fakerpie = (    Pie()    .add("", [list(z) for z in zip(Faker.choose(), Faker.values())])    .set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-设置颜色"))    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")))pie.render_notebook()

在这里插入图片描述

仪表盘

from pyecharts import options as optsfrom pyecharts.charts import Gaugeg = (    Gauge()    .add("", [("完成率", 66.6)])    .set_global_opts(title_opts=opts.TitleOpts(title="Gauge-基本示例")))g.render_notebook()

在这里插入图片描述

折线图

import pyecharts.options as optsfrom pyecharts.charts import Linefrom pyecharts.faker import Fakerc = (    Line()    .add_xaxis(Faker.choose())    .add_yaxis("商家A", Faker.values(), is_smooth=True)    .add_yaxis("商家B", Faker.values(), is_smooth=True)    .set_global_opts(title_opts=opts.TitleOpts(title="Line-smooth")))c.render_notebook()

在这里插入图片描述

K线图

from pyecharts import options as optsfrom pyecharts.charts import Klinedata = [    [2320.26, 2320.26, 2287.3, 2362.94],    [2300, 2291.3, 2288.26, 2308.38],    [2295.35, 2346.5, 2295.35, 2345.92],    [2347.22, 2358.98, 2337.35, 2363.8],    [2360.75, 2382.48, 2347.89, 2383.76],    [2383.43, 2385.42, 2371.23, 2391.82],    [2377.41, 2419.02, 2369.57, 2421.15],    [2425.92, 2428.15, 2417.58, 2440.38],    [2411, 2433.13, 2403.3, 2437.42],    [2432.68, 2334.48, 2427.7, 2441.73],    [2430.69, 2418.53, 2394.22, 2433.89],    [2416.62, 2432.4, 2414.4, 2443.03],    [2441.91, 2421.56, 2418.43, 2444.8],    [2420.26, 2382.91, 2373.53, 2427.07],    [2383.49, 2397.18, 2370.61, 2397.94],    [2378.82, 2325.95, 2309.17, 2378.82],    [2322.94, 2314.16, 2308.76, 2330.88],    [2320.62, 2325.82, 2315.01, 2338.78],    [2313.74, 2293.34, 2289.89, 2340.71],    [2297.77, 2313.22, 2292.03, 2324.63],    [2322.32, 2365.59, 2308.92, 2366.16],    [2364.54, 2359.51, 2330.86, 2369.65],    [2332.08, 2273.4, 2259.25, 2333.54],    [2274.81, 2326.31, 2270.1, 2328.14],    [2333.61, 2347.18, 2321.6, 2351.44],    [2340.44, 2324.29, 2304.27, 2352.02],    [2326.42, 2318.61, 2314.59, 2333.67],    [2314.68, 2310.59, 2296.58, 2320.96],    [2309.16, 2286.6, 2264.83, 2333.29],    [2282.17, 2263.97, 2253.25, 2286.33],    [2255.77, 2270.28, 2253.31, 2276.22],]k = (    Kline()    .add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])    .add_yaxis("k线图", data)    .set_global_opts(        yaxis_opts=opts.AxisOpts(is_scale=True),        xaxis_opts=opts.AxisOpts(is_scale=True),        title_opts=opts.TitleOpts(title="K线图-基本示例"),    ))k.render_notebook()

在这里插入图片描述

地图Map

from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.faker import Fakermap = (    Map()    .add("中国地图", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")    .set_global_opts(title_opts=opts.TitleOpts(title="Map-基本示例")))map.render_notebook()

在这里插入图片描述

词云图

import pyecharts.options as optsfrom pyecharts.charts import WordClouddata = [    ("生活资源", "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"),]c=(    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),    ))c.render_notebook()

在这里插入图片描述

上述示例仅供参考,读者们结合日常工作应用,学会举一反三才是关健

转载地址:http://egjmf.baihongyu.com/

你可能感兴趣的文章
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>
solver及其配置
查看>>
JAVA多线程之volatile 与 synchronized 的比较
查看>>
Java集合框架知识梳理
查看>>
笔试题(一)—— java基础
查看>>
Redis学习笔记(三)—— 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
查看>>
Intellij IDEA使用(一)—— 安装Intellij IDEA(ideaIU-2017.2.3)并完成Intellij IDEA的简单配置
查看>>
Intellij IDEA使用(二)—— 在Intellij IDEA中配置JDK(SDK)
查看>>