pyecharts anaconda_Pyecharts安装使用和绘图案例

5594bcffb92630cb91c77460de6448ac.png

一次偶然的机会,接触了pyecharts,发现做图交互效果非常棒,便深究、摸索、入坑。这篇文章主要讲述自己在安装和使用中遇到的问题,解决方法,最后还会有pyecharts中自己比较喜欢的绘图功能。

pyecharts是一款将python与echarts结合的强大的数据可视化工具。Echarts 是百度开源的一个数据可视化 JS 库, Echarts可以生成非常棒的可视化交互图,pyecharts的开发让在python平台上也可以直接使用数据生成图。

一、pyecharts v1安装使用

我平时使用的是jupyter notebook,因为anaconda中Jupyter Notebook里没有集成pyecharts库,没有直接调用,需要自行安装。

安装pyecharts之前,我们需要了解pyecharts新旧版本的重大区别,自己下载的是什么版本,因为这会影响你代码是否能正常运行。我自己当初不慎下载了最新V1版,但写的代码还是老代码,结果各种报错,如下图等问题。

ef5476802a6cf97ff27c80c7d99d59dd.png

c101857101b892d9b07576858fb28857.png

pyecharts在去年5月份的时候,发布了全新版本v1,修复了之前0.5.X版本留下的bug,但在宣传新版本各种好的时候,存在一个非常严重的问题,新版本向下不再兼容pyecharts 低版本,旧版本上好多语句代码都在新版本上都无法使用。当我们使用原来跑通的代码,在无意间更新版本后,使用时各种ImportError、AttributEerror报错,不要怀疑自己,先去检查一下自己使用的版本。一定要记住,V1是一个分水岭,2019年5月也是一个分水岭,现今大部分新安装的都是V1新版本。

①开始安装,管理员模式运行cmd,输入 pip install pyecharts

如果报错:You are using pip version 10.0.1, however version 19.0.2 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.

未报错,说明版本以更新,下面②、③步骤可以忽略。

②更新版本,输入python -m pip install --upgrade pip

更新成功后,会提示:Successfully installed pip-19.0.2

③前面准备就绪后,再次输入 pip install pyecharts

如果成功会提示:Successfully installed.....pyecharts.....(中间内容省略,看关键字)

④验证是否可以正常使用,打开jupyter notebook,输入一个简单的测试代码

from 

能够正常展示如下水球动态图,就表示一切OK

9e667d4774e37d08ad26332dbbc19b80.gif

⑤如果仍然存在报错等问题,可以自己去下载安装文件,下面是是最新版pyecharts1.7.1文件链接。

pyecharts​pypi.org
e374e474db011206a48da3f5c7f1ec8d.png

下载后,把文件放到Anaconda3Libsite-packages文件夹里面。

运行Anaconda Prompt,输入pip install pyecharts,再次测试是否可以正常使用。

如果想安装历史旧版本,也可以使用此方法。

⑥如果已安装过pyecharts,想要查看自己是什么版本的,可以在打开cmd

输入pip list,会显示已经安装过的文件版本

afbcbe31d003ae246f4959f3e4ef4ca9.png

二、pyecharts v1绘图案例

这里绘图案例,选择了自己比较感兴趣的几个图表,每各图中涉及的数据值都是随机生产,数据不具参考价值。

(1)流向图

全国范围:

from pyecharts.charts import Geo
# 导入配置项
from pyecharts import options as opts
# ChartType:图标类型,SymbolType:标记点类型
from pyecharts .globals import ChartType, SymbolType
import randomc = (Geo().add_schema(maptype="china") # 地图类型,这里选择china.add("",[("天津", 120000), ("上海", 100000), ("广州", 80000), ("深圳", 90000), ("长沙", 100000), ("郑州", 100000),("杭州", 70000),("乌鲁木齐",90)],type_=ChartType.EFFECT_SCATTER,color="green",)# 添加数据点.add("geo",[("北京", "天津"), ("北京", "上海"),("北京", "广州"),("北京", "深圳"),("北京", "长沙"),("北京", "郑州"),("北京", "杭州"),("北京", "乌鲁木齐")],type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color="yellow"),# 添加流向,type_设置为LINES,涟漪配置为箭头,提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'linestyle_opts=opts.LineStyleOpts(curve=0.2),).set_series_opts(label_opts=opts.LabelOpts(is_show=False))# 不显示标签.set_global_opts(title_opts=opts.TitleOpts(title="北京人口省外输出图")))c.render_notebook()# 直接在notebook里显示图表

129097e7413c6d5a3651f4e53ea23a11.gif

省内范围:

c = (Geo().add_schema(maptype="河南") # 地图类型,这里选择郑州.add("",[("安阳", 20000), ("信阳", 10000), ("南阳", 8000), ("洛阳", 9000), ("濮阳", 1000)],type_=ChartType.EFFECT_SCATTER,color="green",)# 添加数据点.add("geo",[("郑州", "安阳"), ("郑州", "信阳"),("郑州", "南阳"),("郑州", "洛阳"),("郑州", "濮阳")],type_=ChartType.LINES,effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color="yellow"),# 添加流向,type_设置为LINES,涟漪配置为箭头,提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'linestyle_opts=opts.LineStyleOpts(curve=0.2),).set_series_opts(label_opts=opts.LabelOpts(is_show=False))# 不显示标签.set_global_opts(title_opts=opts.TitleOpts(title="郑州人口省内输出图")))c.render_notebook()# 直接在notebook里显示图表

202278a0154122f714f8faf666971eda.gif

(2)热力图

以全国各省份人口分布热力图为例(这里随机选择部分省份)

province = ['北京', '上海', '广州', '深圳', '河北', '河南', '湖北', '湖南', '黑龙江', '吉林', '内蒙古', '新疆', '西藏']
data = [(i, random.randint(100, 350)) for i in province]geo = (Geo().add_schema(maptype="china").add("人口", data,type_=ChartType.HEATMAP).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(visualmap_opts=opts.VisualMapOpts(),legend_opts=opts.LegendOpts(is_show=False),title_opts=opts.TitleOpts(title="Geo-全国热力地图")))geo.render_notebook()

45e1ce54e71d5e08a4ceaa00b32d0cdd.png


(3)时间轴

各品牌电脑线上和线下近几年销量对比

from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
import randomcate = ['Apple', 'Dell', 'Toshiba', 'Samsung', 'Lenovo'] tl = Timeline()
for i in range(2015, 2019): #选择年份范围bar = (Bar().add_xaxis(cate).add_yaxis("线上", [random.randint(10000, 15000) for _ in cate]) #随机赋值.add_yaxis("门店", [random.randint(7000, 12000) for _ in cate]).set_global_opts(title_opts=opts.TitleOpts("电脑品牌{}年营业额".format(i))))tl.add(bar, "{}年".format(i))tl.render_notebook()

d73fd77826241aee42737011f0a21bb3.gif


(4)3D柱状图

建立x坐标为小时,y坐标为星期,z坐标为数值的3维动态柱状图

import pyecharts.options as opts
from pyecharts.charts import Bar3Dhours = ["0","1","2","3","4","5","6","7","8","9","10","11", "12","13","14","15","16","17","18","19","20","21","22","23",]
days = ["Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"]
data = [[random.randint(0, 6), random.randint(0, 23), random.randint(0, 15)]for _ in range(100)]
data = [[d[1], d[0], d[2]] for d in data]Bar3D = (Bar3D(init_opts=opts.InitOpts(width="800px", height="400px")).add(series_name="",data=data,xaxis3d_opts=opts.Axis3DOpts(type_="category", data=hours),yaxis3d_opts=opts.Axis3DOpts(type_="category", data=days),zaxis3d_opts=opts.Axis3DOpts(type_="value"),).set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=20,range_color=["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026",],)))Bar3D.render_notebook()

f3efd25026c0a476ebf7ddc28bf0cfd4.gif

三、总结

相对自己之前知悉的Matplotlib、Seaborn等绘图包,接触pyecharts又多打开了一扇大门,愈发觉得围绕python开发的各种包都好强大,python是个好产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何把密度函数化为标准正态二维分布_概率微课:第三章(22) 二维随机变量及分布函数定义...

主要内容二维随机变量及分布函数定义更多系列视频概率微课:第二章(1) 随机变量的定义概率微课:第二章(2) 离散型随机变量概率微课:第二章(3) 两点分布及伯努利试验概率微课:第二章(4) 二项分布1概率微课:第二章(5) 二…

php中的缓,php中的缓存机制解释

php缓存的理解,先列出ob系列函数的作用:ob_start(func) 开启php缓存,回调函数是对缓存内数据的处理函数ob_gzhandler 作为 ob_start 的回调函数,对数据进行gz压缩ob_implicit_flush(true/false) 打开或关闭apache缓存&#xff0c…

php 下拉菜单多选get,Jquery实现select二级联动多选下拉菜单

前言平时虽然也有写前端,但是对于一些复杂的功能实现仍是一知半解。这次项目需要实现一个多选下拉菜单,并且该菜单要和上级下拉菜单保持联动。更加麻烦的是,我需要完成以下操作,以省、市二级联动菜单为例:选择河北省 &…

idea快捷键打开run的窗口_看了上篇文章,你不了解的IDEA操作……

注意作者:卡洛小豆。换种方式写文章,写的不好请多多见谅。未经授权,禁止转载夜,结束了一天的喧嚣后安静下来,伴随着远处路灯那微弱的光。风,毫无预兆地席卷整片旷野,撩动人的思绪万千。那是一个…

arma模型_Eviews经典案例 | 初学者必看!ARMA模型精讲

【本期分析师介绍】希音老师,《数据分析学堂》金牌分析师,对eviews的时间序列、ARMA、VAR、VECM、ARCH、GARCH等操作有深入的研究和实战经验,累计服务客户1000。今天邀请希音老师给大家分享eviews的详细操作步骤。长文预警!可在文末联系麻瓜学…

c# 路径下的最近文件夹_C#8.0的两个有趣的新特性以及gRPC

最近每天忙着跑很多地方,回家就不想动了,没什么心情写东西。今天有空,稍微写一点。下文中:关于C#语法特性的部分需要Visual Studio 2019支持。关于.NET Core的部分需要安装.NET 3.0 Preview4,低版本或许也可以但我没实…

alter table add column多个字段_ElementUI表格el-table表头固定自适应高度解决方案

一、前言ElementUI、iView都以相同的方式提供了表格组件表头固定的方法,即设置组件的height属性。表头固定很重要,就在于当表格数据项很多时,滚动条出现在表格组件内,而不是出现在表格组件外——这样的优点在于,滚动浏…

oracle ora 12011,执行oracle中的job报错:ORA-12011:无法执行作业1

LZ在做一个job执行每天新增一个表的操作时,存储过程运行没问题,job也创建成功,但运行job时,却报错: ,后又用sys用户登陆创建了同样的存储过程和job,结果可以执行成功。当时就猜测是权限问题。后…

e盘是否具有读写权限_轻松搭建MySQL主从复制、读写分离(双机热备)

主从复制: 当mysql数据库的数据量太大的时候,查询数据就很吃力了,无论怎么优化都会产生瓶颈,这时我们需要增加服务器设备来实现分布式数据库,实现多机热备份,要想实现多机的热备,首先要了解主从…

linux运维之道基础命令,Linux运维之道(7)——Linux管理类命令

(Linux)[系统管理]1. 目录管理类命令1.1 cd命令格式:cd [-L|[-P [-e]] [-]] [dir]被你忽略的小知识:在这里科普一个小小的知识点,就是关于cd -为什么可以自由的在当前目录和之前目录相互切换?其实,在我们的 Shell 的环…

html画图代码_python之matplotlib画图教程(2)

各位小表贝,你们的画图小老弟又来咯~上一次我们聊到了如何画离散图,这一次我们来点复杂的,准备好了么,系好安全带,准备发车咯~滴滴~我们先来点比较简单,那种易于上手的。如果现在我知道了两个点的坐标&…

python图像识别代码_用Python进行简单图像识别(验证码)

这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt文件中 #-*-encoding:utf-8-*- import pytesseract from PIL import Image class GetImageDate(ob…

c++ map初始化_Go学习每日一问(18)-map元素查找

每次学习并整理一个Golang的知识点,每天进步一点点。今天学习下go中的一个知识点:map元素查找日省吾身1.下面代码中 A B 两处应该怎么修改才能顺利编译?func main() { var m map[string]int //A m["a"] 1 if v : m["b&q…

-bash: wget: 未找到命令_18个堪称神器的命令行工具,高效运维必备

上期入口:24个 CSS 高级技巧合集提示:因公众号不支持超链接,上图所有项目地址,可在公众号后台回复关键字 “命令行工具” 获取。thefuck命令行打错了以后,打一个fuck就会自动纠正。GitHub:https://github.c…

linux编辑java文本,linux下的文本编辑器VI的使用命令

1、 移动光标H        #移到屏幕的左上角M         #移到屏幕的中间行开头L          #移到屏幕的最后一行[         #移到文件开始位置 (双击)]         #移到文件结束位置(双击):n         #移到文件的第n行Ctrl b     …

python3.8.0安装_Python3.8.0

Python3.8.0是一款广受程序员欢迎的编程语言,也是面向对象的一款设计语言,Python以其语言的灵活和简易性,具有非常简捷而清晰的语法特点,在脚本工具、数据分析、web后端等等领域都有着优良的表现,收到了大家的广泛应用…

cv2.error: opencv(4.4.0)_【从零学习OpenCV 4】轮廓面积与长度

本文首发于“小白学视觉”微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解…

python自定义安装哪些不需要_【1】python模块:自定义模块的3种导入方式

一、定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.py文件的集合就是模块。如果不懂可以先看下面这篇博文&#xf…

linux划分root_vg,為Linux添加新硬盤,划分LVM分區

1、為VM添加兩塊SCSI硬盤→→完成后重啟VM→→運行fdisk -l,可以看到系統自動將添加的硬盤識別為/dev/sdb和dev/sdc.2、分區對sdb和sdc進行分區,並調整分區類型為8e(LVM類型),sdb划分為sdb1,sdb2,sdc划分為sdc1,sdc2,sdc3[rootpromote ~]# fdisk /dev/sd…

python文件输入符_python读入文件时加r的作用?

r’xxx’ 的含义 **加 r 会把字符串转变为非转义的原始字符串。**比较常用。 例如:print(D:\\test\\test.txt)print(rD:\\test\\test.txt)print(rD:\test\test.txt)123 结果是:D:\test\test.txt D:\\test\\test.txt D:\test\test.txt123 从结果看来&…