其实学习任何一门编程语言,最重要的就是学习它的原理。在前面我们已经介绍了matplotlib、seaborn、plotly的绘图原理,今天给大家介绍的是,我认为交互效果最好的一个python绘图库,学会了绝对不亏。
《matplotlib绘图原理详解》
《seaborn绘图原理详解》
《plotly绘图原理详解》

1.pyecharts简介

Echarts是一个由百度开源的数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而python是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上了数据可视化时,pyecharts诞生了。

pyecharts分为v0.5v1两个大版本,v0.5和v1两个版本不兼容,v1是一个全新的版本,因此我们的学习尽量都是基于v1版本进行操作。

学习任何编程语言,其实官网是最好的老师,下面我们列出了echarts和pyecharts的官网,比较幸运的是,pyecharts是由一个中国人开发的,也存在一个中文网站,这样学习起来就方便多了。
echarts官网:https://www.echartsjs.com/index.html
pyecharts官网:https://pyecharts.org/#/zh-cn/intro

安装:pip install pyecharts

查看版本:print(pyecharts.version)

2.pyecharts绘图逻辑

1)pyecharts绘图逻辑说明

pyecharts是一个全新的可视化绘图工具,因此它的绘图逻辑完全不同于前面说到的matplotlib、seaborn、plotly。因此你想要学好这个可视化工具,最主要的就是要学会它的绘图逻辑,俗话说:“知己知彼,百战不殆”,你只有了解别人 ,才可以用起来顺手呀。pyecharts的绘图逻辑分为以下几步。

  • ① 选择图表类型;
  • ② 声明图形类并添加数据;
  • ③ 选择全局变量;
  • ④ 显示及保存图表;

第一步是选择图表类型,基于自己的数据特点,我们看看自己想要绘制那种图形,需要什么图形就导入什么图形;
“下面我简单列举了几个导入方法”

from pyecharts.charts import Scatter  # 导入散点图
from pyecharts.charts import Line     # 导入折线图
from pyecharts.charts import Pie      # 导入饼图
from pyecharts.charts import Geo      # 导入地图

第二步是声明图形类并添加数据,什么是图形类呢?其实每一个图形库都是被pyecharts作者封装成为了一个类,这就是所谓的面向对象,我们在使用这个类的时候,需要实例化这个类(观察下面代码)。声明类之后,相当于初始化了一个画布,我们之后的绘图就是在这个画布上进行。接下来要做的就是添加数据,pyecharts中添加数据共有2种方式,一种是普通方式添加数据,一种是链式调用(观察下面代码)来添加数据,后面我会分章节一个个为大家介绍。

"下面绘制的是:正弦曲线的散点图"
# 1.选择图表类型:我们使用的是散点图,就直接从charts模块中导入Scatter这个图形。
from pyecharts.charts import Scatter
import numpy as npx = np.linspace(0,2 * np.pi,100)
y = np.sin(x)(# 注意:使用什么图形,就要实例化该图形的类;# 2.我们绘制的是Scatter散点图,就需要实例化散点图类,直接Scatter() 即可;Scatter() # 实例化类后,接着就是添加数据,下面这种方式就是使用“链式调用”的方式绘图;# 注意:散点图有X、Y轴,因此需要分别给X轴、Y轴添加数据;# 3.我们先给X轴添加数据;.add_xaxis(xaxis_data=x)# 4.我们再给Y轴添加数据;.add_yaxis(series_name="这个图是干嘛的",y_axis=y)
).render_notebook()

第三步就是设置全局变量,用通俗的话说就是:调节各种各样的参数,把图形变得更好看。常用的有标题配置项、图例配置项、工具配置项、视觉映射配置项、提示框配置项、区域缩放配置项。你也许不知道这几个名词是什么意思,但是不用担心,你首先是学会了如何使用pyecharts绘图后,再慢慢学习这方面的内容。

  • 默认情况下图例配置项和提示框配置项是显示的,其它四个配置项默认情况下是不显示的,需要我们自己设置;

第四步是显示及保存图表,我们这里介绍两种最常用的保存方式,如下所示。

.render("C:\\Users\\黄伟\\Desktop\\CSDN上传图像\\a.html")
# 如果不指定路径,就是直接保存在当前工作环境目录下;
# 如果指定了路径,就是保存到指定的目录下;
# 注意:最终都是以html格式展示,发给其他任何人都可以直接打开看的;.render_notebook()
# 如果我们使用的是jupyter notebook,直接使用这行代码,可以直接显示图片;

3.选择图表类型

下面列举出现的所有图形都在charts字模块下,我们利用如下代码就可以导入各自对应的图形,在上面的叙述中,我已经列举了部分图形的导入方式。

  • from pyecharts.charts import 函数名


注意:这里我们只列出了部分图形,包括我们后面绘制地图,也都是在pyecharts的子模块charts模块下,我们要记住这句导入相关图形库的代码。

4.数据添加

1)如何添加数据呢?

像散点图、折线图等二维数据图形,它既有X轴,又有Y轴,所以我们不仅要为X轴添加数据,还要为Y轴添加数据。

  • .add_xaxis(xaxis_data=x)为X轴添加数据;
  • .add_yaxis(series_name=’’, y_axis=y)为Y轴添加数据;

像饼图、地图这样没有X轴、Y轴区分的图形,我们直接使用add()方法添加即可。

  • .add(series_name=’’, data_pair=[(i,j)for i,j in zip(lab,num)]);

2)pyecharts绘图的两种方式

上面我们已经说过,pyecharts中绘图有2种方式。第一种方式:普通方式;第二种方式:链式调用。仔细观察下面的演示代码,看看区别在哪里。

① 链式调用的方式绘图
from pyecharts.charts import Line
import pyecharts.options as opts
import numpy as npx = np.linspace(0,2 * np.pi,100)
y = np.sin(x)(Line(init_opts=opts.InitOpts(width="700px",height="300px")).add_xaxis(xaxis_data=x).add_yaxis(series_name="绘制线图",y_axis=y,label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="我是标题",subtitle="我是副标题",title_link="https://www.baidu.com/"),tooltip_opts=opts.TooltipOpts(axis_pointer_type="cross"))
).render_notebook()"""
关于全局配置项的代码部分,你可能不懂,现在不懂没什么关系!
"""

结果如下:

② 普通方式绘图
from pyecharts.charts import Pie
import pyecharts.options as optsnum = [110, 136, 108, 48, 111, 112, 103]
lab = ['哈士奇', '萨摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']
x = [(i, j)for i, j in zip(lab, num)]
print(x)pie = Pie(init_opts=opts.InitOpts(width="700px",height="300px"))
pie.add(series_name='',data_pair=[(i, j)for i, j in zip(lab, num)])
pie.render_notebook()

结果如下:

3)关于series_name=""的说明

在添加数据时候,我们可以注意到series_name参数的存在,它是一个字符串。你也看到了,我们可以传递一个空字符串,也可以传递指定字符串,最终的作用有点类似于图例的效果,但这里并不是设置图例。你不需要过多的注意这个参数,只需要牢记一点:这个参数必须有,必须写,哪怕你传递一个空字符串,也要写,因为不写这个参数,会报错。

5.设置全局配置项

当我们学会了如何使用pyecharts绘图,并且已经绘制出来了某个图形,此时这个图形并不一定好看。这就需要我们学会使用全局配置项,进行图形参数的调节与设置。

所有的全局配置项的使用,都是在options这个子模块下,我们在设置全局配置项的时候,记得导入这个模块。这部分涉及到的参数太多太杂,当你觉得某个图形需要怎么改的时候,一般肯定是有对应的参数进行处理的,你要相信你能想到的,别人大神肯定是都想到了,这个时候你就需要学会使用官网,官网很重要!官网很重要!官网很重要!

  • import pyecharts.options as opts
  • 使用options配置项,在 pyecharts中,一切皆Options。
  • 全局配置项可通过调用set_global_options()方法进行设置。


注意:默认情况下图例配置项和提示框配置项是显示的,其他四个配置项默认情况下是不显示的,需要我们自己设置。

6、显示及保存图表

  • .render()默认将会在当前工作目录下生成一个 render.html 的文件,支持path参数,自定义文件保存位置,如 render(r"F:\my_first_chart.html"),文件直接用浏览器打开。
  • Jupyter Notebook中直接调用.render_notebook()随时随地渲染图表。


  

   

关注微信公众号『数据分析与统计学之美』,后台回复“入群”拉你入群交流哦,气氛杠杠的!看到这里,麻烦您点个再看,让更多朋友看到哦!

pyecharts的绘图原理详解相关推荐

  1. python echarts接口_python绘图pyecharts+pandas的使用详解

    pyecharts介绍 pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒 为避免绘制缺 ...

  2. ant如何形成时间轴和图库_Python数据可视化常用4大绘图库原理详解_python

    这篇文章主要介绍了Python数据可视化常用4大绘图库原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天我们就用一篇文章,带大家梳理mat ...

  3. ASP.NET页面与IIS底层交互和工作原理详解(一)

    第一回: 引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net.他们耐心.细致地告诉你如何一步步拖放控件.设置控件属性.编写CodeBehind代码,以实 ...

  4. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  5. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  6. jQuery中getJSON跨域原理详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp28 jQuery中getJSON跨域原理详解 前几天我再开发一个叫 河蟹工 ...

  7. nginx配置文件及工作原理详解

    nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...

  8. EMD算法之Hilbert-Huang Transform原理详解和案例分析

    目录 Hilbert-Huang Transform 希尔伯特-黄变换 Section I 人物简介 Section II Hilbert-Huang的应用领域 Section III Hilbert ...

  9. 图像质量损失函数SSIM Loss的原理详解和代码具体实现

    本文转自微信公众号SIGAI 文章PDF见: http://www.tensorinfinity.com/paper_164.html http://www.360doc.com/content/19 ...

最新文章

  1. sys.stderr.write(f“ERROR: {exc}“) SyntaxError: invalid syntax错误
  2. 谈谈你对计算思维和python生态的理解_计算思维的的理解及重要性
  3. python123数字形式转换_【Python系统学习02】数据类型与类型转换
  4. oracle两种日志模式,oracle 进阶(二)--数据库日志模式切换
  5. jieba分词(python使用篇)(一)
  6. asp.net文本编辑器FCKeditor使用方法详解 - 橙色大地 - 博客园
  7. 开源工具 PrivateBin 修复XSS 漏洞
  8. CCF201403-2 窗口(100分)
  9. 构建自己的Aleax查询服务
  10. 帮助用户连接网络打印机工具
  11. ASP.NET MVC2 视频教程下载地址
  12. 执节歌者 · 箫谱1
  13. 基于JNA(Java Native Access)实现RFID单卡、多卡读取以及写入。
  14. EARTH DATA网站注册走过的坑
  15. Python找最大数及位置
  16. 怎么用C语言搜索有根区间,C语言 判断一个数字是否在一个指定的区间范围内?求解答。。。。...
  17. 龙城0772信息门户网设计制作
  18. 写给人类的机器学习 六、最好的机器学习资源
  19. 普通青年、文艺青年、2B青年---最近老火了
  20. 牛客算法笔记【second week】

热门文章

  1. Wwise音频引擎的入门指南
  2. 前端调用百度地图API,解决ios上地图不显示、https访问不了等问题
  3. Linux NTP配置详解 (Network Time Protocol)
  4. 初次接触Web漏洞攻击-ewebeditor漏洞
  5. MediaCodec原理及使用
  6. 小程序微信支付V3版本Java集成
  7. 朴素贝叶斯实战应用---单词拼写检查器(结合html直观展示)
  8. 2018年ACM俱乐部个人训练赛第二十一场.A.微信群
  9. HM编码器代码阅读(38)——帧内预测(五)帧内预测之正式的预测操作
  10. 屏蔽账户显示功能之后,推特承诺对加密货币骗局采取行动