快捷搜索:  汽车  科技

python数据可视化操作原理(推荐一款python数据可视化神器)

python数据可视化操作原理(推荐一款python数据可视化神器)支持Python2.7 3.4 0.5.x版本将不再进行维护,文档位于05x-docs.pyecharts.org。https://github.com/pyecharts/pyecharts 从项目文档介绍可知, pyecharts目前分为两个大的系列版本:0.5.x 和v1.x.x。Pyecharts 是一个用于生成 Echarts 图表的类库。常规的Echarts 是由百度开源的一个数据可视化 JS 库,主要用于数据可视化。简单来说,Pyecharts是一款将python与echarts结合的强大的数据可视化工具。使用 Pyecharts 可以生成独立的网页,也可以在 flask Django 中集成使用。 项目介绍:http://pyecharts.herokuapp.com/ 项目源码:

好久没有更新关于Python的资料,今天给大家推荐一篇来自狂师 推荐一款Python数据可视化神器。希望对你有帮助,文章最后有学习资料。

1、前言

在日常工作中,为了更直观的发现数据中隐藏的规律,察觉到变量之间的互动关系,人们常常借助可视化帮助我们更好的给他人解释现象,做到一图胜千文的说明效果。

在Python中,常见的数据可视化库有:

  • matplotlib 是最常见的2维库,可以算作可视化的必备技能库,由于matplotlib是比较底层的库,api很多,代码学起来不太容易。
  • seaborn 是建构于matplotlib基础上,能满足绝大多数可视化需求。更特殊的需求还是需要学习matplotlib。

上述两个库都是静态的可视化库,大多数做过前端Web开发的同学都用到过Echarts.js库,它是一款前端可视化的JS库、功能非常之强大。在使用之前,需要导入js库到项目中。对于平时用Python较多的同学而言,如果每次实现可视化功能(特别是一些小需求),都需要引用js库显然不太方便,于是就在想有没有Python与Echarts结合的轮子。答案是肯定的,在Github中就有一个国人开发的一个Echarts与Python结合的轮子:Pyecharts,它不仅很好的兼容了web项目,而且可以做到可视化的动态效果。

2、pyecharts介绍

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

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

http://pyecharts.herokuapp.com/

项目源码:

https://github.com/pyecharts/pyecharts

从项目文档介绍可知, pyecharts目前分为两个大的系列版本:0.5.x 和v1.x.x。

V0.5.x

支持Python2.7 3.4 0.5.x版本将不再进行维护,文档位于05x-docs.pyecharts.org。

V1

仅支持Python3.6

新版本系列将从v1.0.0开始,文档位于pyecharts.org;实例位于 gallery.pyecharts.org

PS: v0.5.x 和 V1 间不兼容,V1 是一个全新的版本。

3. 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(词云图)
    image.png

4. Pyecharts安装

4.1 pip 安装

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

4.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-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg

5. Pyecharts官方实例实战

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

from pyecharts.charts import Bar from 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())就可以将图表直接展示出来,非常方便。

python数据可视化操作原理(推荐一款python数据可视化神器)(1)

如果脚本在非jupyter环境运行,图表渲染方法需改为:

bar.render()

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

from snapshot_selenium import snapshot as driver from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.render import make_snapshot def 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-phantomjs make_snapshot(driver bar_chart().render() "bar.png")

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

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

from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.faker import Faker pie = ( 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()

6.2 仪表盘

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

6.3 折线图

import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker c = ( 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()

6.4 K线图

from pyecharts import options as opts from pyecharts.charts import Kline data = [ [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()

6.5 地图Map

from pyecharts import options as opts from pyecharts.charts import Map from pyecharts.faker import Faker map = ( 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()

6.6 词云图

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") ] 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()

有小伙伴私信我,要Python的学习资料,我连夜整理了一些有深度的Python教程和参考资料,从入门到高级的都有,文件已经打包好了,正在学习Python的同学可以免费下载学习,有兴趣的可以下载来看一下。资料是我辛苦整理的可不能轻易得到哟。点击我的头像,关注后私信回复“资料”即可下载。首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!重要的事说三遍,哈哈。“编程是门手艺活”。什么意思?得练啊。

猜您喜欢: