前端或网站开发的博友可能都使用过强大的Echarts技术。ECharts是一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的Canvas类库ZRender,提供直观、生动、可交互、可高度个性化定制的数据可视化图表。ECharts提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap,多维数据可视化的平行坐标,还有用于BI的漏斗图、仪表盘,并且支持图与图之间的混搭。

下图是Echarts简单绘制折线图的示例,左边是脚本代码,右边是显示图形,非常美观。
http://echarts.baidu.com/echarts2/doc/example/line1.html#helianthus

echarts官方网址:http://echarts.baidu.com/tutorial.html
Eastmount文章: [Echarts可视化] 一.入门篇之简单绘制中国地图和贵州地区

既然Echarts这么好用,Python也有相应的第三方扩展包支持,它就是这篇文章讲解的pyecharts库。pyecharts是一个用于生成 Echarts 图表的类库,即Echarts与Python的对接,并推荐大家结合Django或Flask使用。下面开始入门介绍,希望这篇文章对你有所帮助,如果有错误或不足之处,还请海涵。

一. 安装pyecharts

pyecharts是兼容Python2和Python3的,直接使用pip进行安装:

pip install pyecharts

安装如下图所示:

安装成功之后,我们直接导入该扩展包使用。常见的图形包括:(参考 赖德发大神博客)

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(词云图)

二. 入门知识


1.柱状图

代码如下:

# -*- coding:utf-8 -*-
from pyecharts import Barbar = Bar("贵州GDP柱状图", "副标题")
bar.add("GDP",["贵阳市", "遵义市", "六盘水市", "安顺市", "黔东南州"],[40, 30, 26, 22, 15])
bar.show_config()
bar.render()

代码运行之后,会在本地生成一个render.html文件,打开输出如下所示图形。

from pyecharts import Bar
#从pyecharts库中导入Bar子类
bar = Bar("贵州GDP柱状图", "副标题")
#定义Bar()柱状图,同时设置主标题和副标题
bar.add()
#调用add()函数添加图表的数据和设置各种配置项
bar.show_config()
#打印输出图表的所有配置项
bar.render()
#生成render.html文件,也可以设置路径和文件名

2.横向柱状图

代码如下:

# -*- coding:utf-8 -*-
from pyecharts import Barbar = Bar("贵州GDP柱状图", "副标题")
city = ["贵阳市", "遵义市", "六盘水市", "安顺市", "黔东南州"]
data1 = [40, 30, 26, 22, 15]
data2 = [13, 43, 32, 38, 20]
bar.add("2017年GDP", city, data1)
bar.add("2016年GDP", city, data2, is_convert=True)
bar.show_config()
bar.render()

输出如下图所示:

3.带有涟漪特效动画的散点图

这段代码参考简书网 https://www.jianshu.com/p/b718c307a61c ,强烈推荐大家学习chenjiandongx大神的文章。完整代码如下:

# -*- coding:utf-8 -*-
from pyecharts import EffectScatteres = EffectScatter("动态散点图各种图形示例")
es.add("", [10], [10], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin")
es.add("", [20], [20], symbol_size=12, effect_scale=4.5, effect_period=4, symbol="rect")
es.add("", [30], [30], symbol_size=30, effect_scale=5.5, effect_period=5, symbol="roundRect")
es.add("", [40], [40], symbol_size=10, effect_scale=6.5, effect_brushtype='fill', symbol="diamond")
es.add("", [50], [50], symbol_size=16, effect_scale=5.5, effect_period=3, symbol="arrow")
es.add("", [60], [60], symbol_size=6, effect_scale=2.5, effect_period=3, symbol="triangle")
es.render()

运行结果如下图所示:

4.绘制3D图形

绘制3D折线图代码如下:

# -*- coding:utf-8 -*-
from pyecharts import Line3D
import random
data = [[1,2,3,4], [1,2,3,4], [0,4,8,16]]
Line3D = Line3D("3D 折线图示例", width=1200, height=600)
Line3D.add("", data, is_visualmap=True)
Line3D.render()

输出图形如下所示:

绘制3D散点图,并设置随机散点坐标,代码如下所示:

# -*- coding:utf-8 -*-
from pyecharts import Scatter3D
import random
data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)]
range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf','#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
scatter3D = Scatter3D("3D 散点图示例", width=1200, height=600)
scatter3D.add("", data, is_visualmap=True, visual_range_color=range_color)
scatter3D.render()

输出结果非常美观,如下图所示:

5.仪表盘

代码如下:

# -*- coding:utf-8 -*-
from pyecharts import Gaugeg = Gauge("仪表盘图形","副图标")
g.add("重大项目", "投资占比", 66.66)
g.show_config()
g.render("g.html")

输出图形如下所示:


6.水球图

代码如下:

# -*- coding:utf-8 -*-
from pyecharts import Liquidliquid = Liquid("水球图")
liquid.add("Liquid", [0.8])
liquid.show_config()
liquid.render()

输出如下图所示:

讲到这里基本的图形讲解完毕,更多知识推荐大家结合实际应用研究。

三. 绘制中国地图

如果直接绘制中国地图,只会显示一个角落,如下图所示:


1.安装

这是需要安装第三方地图支持包,代码如下:
    pip install echarts-countries-pypkg 
    pip install echarts-china-provinces-pypkg
    pip install echarts-china-cities-pypkg

    pip install echarts-countries-pypkg 
    pip install echarts-china-provinces-pypkg
    pip install echarts-china-cities-pypkg

其中echarts-countries-pypkg 是全球国家地图,echarts-china-provinces-pypkg是中国省级地图, echarts-china-cities-pypkg是中国城市地图。安装过程如下图所示:

2.绘制中国地图

安装之后我们来看一个简单的中国地图代码,这是作者微信好友全国各省分布情况,代码如下:

#-*- coding:utf-8 -*-
from pyecharts import Map
value =[2, 60, 2, 6, 80, 2, 5, 2, 1, 4, 5, 1,4, 1, 5, 2, 2, 5, 4, 1, 1, 10, 2]
attr =["安徽", "北京", "福建", "广东", "贵州", "海南", "河北", "河南", "黑龙江","湖北", "湖南", "吉林", "江苏", "辽宁", "山东", "山西", "陕西", "上海","四川", "天津", "云南", "浙江", "重庆"]
map=Map("各省微信好友分布", width=1200, height=600)
map.add("", attr, value, maptype='china', is_visualmap=True,visual_text_color='#000')
map.show_config()
map.render()

输出结果如下图所示,因为作者在北京读书,贵州人,所以这两个地方好友最多。

再来看一组中国地图,全国的空气质量情况,代码如下:

#-*- coding:utf-8 -*-
from pyecharts import Geodata = [("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),("赤峰", 16),("青岛", 18),("乳山", 18),("金昌", 19),("泉州", 21),("莱西", 21),("日照", 21),("胶南", 22),("南通", 23),("拉萨", 24),("云浮", 24),("梅州", 25)]
geo = Geo("全国主要城市空气质量", "data from pm2.5",title_color="#fff", title_pos="center",width=1200, height=600, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 200],visual_text_color="#fff", symbol_size=15, is_visualmap=True)
geo.show_config()
geo.render("kongqi.html")

输出结果如下所示,它会提示错误“coordinates is not found”坐标没有定义,知乎说可以用 geo_cities_coords 参数自定义经纬度处理解决。

而我的解决方法是怀疑中文乱码错误,并且成功解决,即中文前面加个u"贵阳",代码如下:

#-*- coding:utf-8 -*-
from pyecharts import Geodata = [(u"海门", 9),(u"鄂尔多斯", 12),(u"招远", 12),(u"舟山", 12),(u"齐齐哈尔", 14),(u"盐城", 15),(u"赤峰", 16),(u"青岛", 18),(u"乳山", 18),(u"金昌", 19),(u"泉州", 21),(u"莱西", 21),(u"日照", 21),(u"胶南", 22),(u"南通", 23),(u"拉萨", 24),(u"云浮", 24),(u"梅州", 25)]
geo = Geo(u"全国主要城市空气质量", "data from pm2.5",title_color="#fff", title_pos="center",width=1200, height=600, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 200],visual_text_color="#fff", symbol_size=15, is_visualmap=True)
geo.show_config()
geo.render("kongqi.html")

输出如下图所示:

3.绘制贵州地图

最后补充绘制贵州省地图的代码:

#-*- coding:utf-8 -*-
from pyecharts import Mapvalue = [95, 70, 30, 45, 80,10, 25, 40, 5]
attr = [u'贵阳市', u'遵义市',  u'六盘水市', u'安顺市', u'毕节市', u'铜仁市', u"黔东南苗族侗族自治州", u"黔南布依族苗族自治州",u"黔西南布依族苗族自治州"]
map = Map(u"贵州地图示例", width=1200, height=600)
map.add("", attr, value, maptype=u'贵州',is_visualmap=True, visual_text_color='#000')
map.show_config()
map.render()

输出如下图所示:

作者是在学习Python获取微信信息,从而可视化画图学习的pyecharts库,也希望感兴趣的同学学习下itchat库。
参考作者文章: [Python微信开发] 一.itchat入门知识及微信自动回复、微信签名词云分析

狂风骤起吹落花,飘零万里到天涯。
天垂六幕千山外,娜璋云游看晚霞。
最近四月把婚纱照拍了,开心!同时,写博客已经5年了,每个月都坚持写,这感觉真棒,也谢谢CSDN。

(By:Eastmount 2018-04-10 晚上9点  http://blog.csdn.net/eastmount/ )

[Python可视化] pyecharts安装入门及绘制中国贵州地图相关推荐

  1. qpython3绘图_比Excel制图更强大,Python可视化工具Altair入门教程

    比 Excel 制图更强大,Python 可视化工具 Altair 入门教程 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用 Python,那么强烈推荐你试 ...

  2. python可视化窗口编程-Python可视化界面编程入门

    Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...

  3. Python可视化界面编程入门

    Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...

  4. python编程界面-Python可视化界面编程入门

    Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...

  5. matlab绘制中国南海地图(九段线小图)

    matlab绘制中国南海地图(九段线小图) 网上关于怎么画南海九段线小图的文章不多,在此记录一下. 绘制南海图 首先要下载中国地图的shp文件,参见上一篇文章. %------------------ ...

  6. 用python画大白_[Python][可视化]matplotlib基础入门

    Python包matplotlib画图入门,以折线图为例. 在使用之前,导入matplotlib包,设置中文字体 import matplotlib.pyplot as plt %matplotlib ...

  7. 数据可视化库 matplotlib 入门 8——绘制文本与数学表达式、图形处理

    Matplotlib 库使用入门8 绘制文本与数学表达式 绘制文本的函数与功能 绘制数学表达式 图像处理 在前面关于 matploblib 的文章中,笔者分别介绍了: matplotlib 库的安装与 ...

  8. python boxplot orient,Python可视化 | Seaborn5分钟入门(三)——boxplot和violinplot

    微信公众号:「Python读财」 如有问题或建议,请公众号留言 Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在m ...

  9. python编写人口预测图_python绘制中国大陆人口热力图

    这篇文章给出了如何绘制中国人口密度图,但是运行存在一些问题,我在一些地方进行了修改. 本人使用的IDE是anaconda,因此事先在anaconda prompt 中安装Basemap包 conda ...

  10. Python实战:200行代码绘制个人足迹地图!

    前两年,足迹地图小程序风靡朋友圈,一时间大家都流行晒自己的旅行地图.但是,笔者最近体验了好几款足迹地图的小程序,发现这些小程序虽然号称是足迹地图,但最多只是展示到省级别,无法精确到市级别,因此,笔者周 ...

最新文章

  1. 世界被一种神秘的数学力量彻底改变了
  2. [LintCode] strStr [KMP brute force]
  3. 基于JWT的API权限校验:需求分析
  4. cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...
  5. base64解密后乱码_php实现php代码的加密解密
  6. 楼下邻居总偷网,改密码也没用,过一会他们又能连上,该怎么办?
  7. Eclipse — 如何导入MySQL驱动
  8. MSSQL2005 活动进程等待类型说明
  9. 线性表的链式存储结构-----链表
  10. js获取ck_JS获取CkEditor在线编辑的内容
  11. qt5.6 mysql_qt 5.6 找不到 mysql 驱动解决
  12. [translate]Multimodal Self-Paced Learning for Multi-Omics Feature Selection and Data Integration
  13. 国务院公布《关键信息基础设施安全保护条例》
  14. [LuoguU41039]PION后缀自动机 树链剖分+动态开点线段树
  15. Eclipse官网下载地址
  16. c语言之 杨辉三角
  17. 奶爸日记7 - 新手第一次开车上路
  18. 正则表达式基本语法和Java中的简单使用
  19. RH413企业安全加固 第15章 配置系统审计
  20. 八通道IEPE振动传感器数据高速同步网络采集模块 WJ288

热门文章

  1. python程序设计实践教程答案江苏_《Python程序设计》习题与答案python教材答案
  2. PMP更新教材了,怎么备考?
  3. 因用了NeatUpload大文件上传控件而导致Nonfile portion 4194304 bytes错误的解决方法...
  4. php vue插件 hplus-ui初学
  5. BS结构浏览器网页读写IC卡技术汇总
  6. c语言获取读卡器读到的信息,插卡式读卡器(接触式IC卡读写设备)
  7. 淘宝获得淘宝商品类目 API
  8. Win10 powershell字体设置
  9. 电脑 Google浏览器 截长屏 无任何辅助软件
  10. 力控组态软件与mysql_力控组态软件实时数据库的原理