作为 Python 的新一代数据可视化绘图库,和matplotlib等传统绘图库相比,plotly具有以下优点:

  • 简洁易用: 作为一只小透明,plotly的图表对象就像一个嵌套dict, 可以通过直接修改对象属性而改变图表形态。学习难度远远小于matplotlib.

  • 动态交互: plotly绘制的图都是可以交互的图表,可以点击查看数据,拖拽放大,隐藏某些数据列等等,也可以导出成静态图,灵活性大大增加。

  • 前端能力: 基于plotly和React开发的Dash号称是 The front end for ML and data science models,可以基于它用Python轻松构建机器学习应用App.

通常,plotly有两种常用的绘图接口:

  • 第一种是面向对象的绘图接口:plotly.graph_objs(简称go),也是最基础的绘图接口,

  • 第二种是面向函数式的快速绘图接口: plotly.express(简称px),是在go基础上封装的一种更方便的绘图接口。

本文我们按照如下3 part来深入浅出地讲解plotly的使用方法。喜欢记得收藏、关注、点赞

  • part1: 深入原理, 本文第一节和第二节,分别介绍 go和px 的设计思想和绘图原理。

  • part2: 浅出范例, 本文第三节和第四节,对比性地展示 go和px 的五种绘图范例(柱形图、折线图、散点图、热力图、直方图)

  • part3: 深入实践, 本文第五节,展示一些plotly和机器学习相结合的综合应用范例。

注:完整代码、资料、技术交流,文末提供

一,plotly.graph_objs绘图原理

plotly的Figure是由data(数据,数据包括图表类型(Line,Scatter,Area,Pie)和具体数据取值信息)和 layout(布局,包括xaxis,yaxis,title,legend等) 组成的对象。

Figure对象就像一个透明的嵌套的Python dict 一样,可以通过修改元素值而改变其形态。

import numpy as np
import plotly.graph_objs as goepoches = np.arange(20)
accs = 1-0.9/(epoches+1)data = go.Scatter(x = epoches, y=accs, mode = "lines+markers",name = "acc",marker = dict(size=8,color="blue"),line= dict(width=2,color="blue",dash="dash"))layout = {"title":"accuracy via epoch","xaxis.title":"epoch","yaxis.title":"accuracy","font.size":15}fig = go.Figure(data = data,layout=layout)
fig.show()

如果要把图表的颜色改成红色实线怎么办呢?很简单,我们先print(fig)一下,观察它的结构,找到线的颜色和线型的属性获取方法,然后直接对相应属性赋值就可以了。

print(fig.data)  #如果想获取fig更详细结构信息,可以直接 fig.to_dict()
(Scatter({'line': {'color': 'blue', 'dash': 'dash', 'width': 2},
'marker': {'color': 'blue', 'size': 8},
'mode': 'lines+markers',
'name': 'acc',
'x': array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19]),
'y': array([0.1       , 0.55      , 0.7       , 0.775     , 0.82      , 0.85      ,
0.87142857, 0.8875    , 0.9       , 0.91      , 0.91818182, 0.925     ,
0.93076923, 0.93571429, 0.94      , 0.94375   , 0.94705882, 0.95      ,
0.95263158, 0.955     ])
}),)
fig.data[0].line.color = "red"
fig.data[0].line.dash = "solid"
fig

怎么样,plotly是不是一个当之无愧的小透明。

一学就会,20000字深度讲解 Python 数据可视化神器 Plotly相关推荐

  1. 20000字深度讲解 Python 数据可视化神器 Plotly

    本文我们按照如下3 part来深入浅出地讲解plotly的使用方法.喜欢记得收藏.关注.点赞 part1: 深入原理, 本文第一节和第二节,分别介绍 go和px 的设计思想和绘图原理. part2: ...

  2. 图文讲解Python数据可视化神器 !

    我们都知道python上的一款可视化工具 matplotlib , 但是它是静态的.后来发现了 pyecharts 模块,简直好用到不行,可视化类型非常多,它是基于 Echarts 开发的. Echa ...

  3. ​Python数据可视化工具怎么选?深度评测5款实用工具

    来源:早起Python 本文约3100字,建议阅读9分钟 本文通过真实绘图,为你深度测评Python五大数据可视化库. [ 导读 ]相信很多读者学习Python就是希望做出各种酷炫的可视化图表,当然你 ...

  4. 可视化工具不知道怎么选?深度评测5大Python数据可视化工具

    相信很多读者学习Python就是希望作出各种酷炫的可视化图表,当然你一定会听说过Matplotlib.Pyecharts.Seaborn.Plotly.Bokeh这五大工具,本文就将通过真实绘图来深度 ...

  5. python可视化图表工具_酷炫的可视化图表工具来帮忙 深度评测五大Python数据可视化工具...

    原标题:酷炫的可视化图表工具来帮忙 深度评测五大Python数据可视化工具 不少Python用户的一大诉求是做出各种酷炫的可视化图表,而这就需要了解清楚工具特色,才好在制作不同类型图表顺利找到适合自己 ...

  6. python各个绘图的作用,深度讲解Python四大常用绘图库的“绘图原理”

    转自:数据分析与统计学之美 为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该 ...

  7. 肝!深度讲解Python四大常用绘图库的“绘图原理”

    为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该怎么做,四个字一学就忘. 其 ...

  8. 深度讲解 Python 四大常用绘图库的“绘图原理”

    作者 | 黄伟呢 整理 | 杨碧玉 出品 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 头图 |  CSDN 下载自视觉中国 为什么要写这篇文章? 最近有不少粉丝来问我,Pytho ...

  9. 女生不能学理科?python+数据可视化分析15万考生的成绩,刷新了我的认知

    昨天是什么日子?推迟了一个月的高考终于来了,作为一个已经考完N年的人,说句实话,我比你们还激动! 因为我知道,它来的太不容易了. 说到高考,就不得不提那个别人口中的江苏卷,作文题的每个字我都认识,但是 ...

最新文章

  1. 快速部署Telegraf Influxdb
  2. 调取方法_转需!不去阿里巴巴调取支付宝交易证据方法
  3. 代码自动化打包系统【原创】
  4. java 判断对象为控制_Java流程控制
  5. php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现
  6. SAP License:”事后借记”与第三方外币支付处理
  7. 【go】metrics基本使用
  8. python下载安装教程-Python和Anoconda和Pycharm安装教程
  9. python安装requests库提示更新_解决已经安装requests,却依然提示No module named requests问题...
  10. (学习笔记)图像处理——同态滤波
  11. Java学习——Servlet是什么
  12. 2019国人工资报告:月薪过万是个槛?大部分网友表示月薪不足5K!
  13. 字节跳动高工面试:java高级程序员面试宝典蔡羽豆瓣
  14. 安装驱动显卡重启计算机,Win7电脑安装显卡驱动后一直重启的解决方法
  15. 如何用html5创作一个游戏
  16. GeneXus学习记录——Transaction
  17. Element Table 反选
  18. ZZ:INF文件中的注册表位置,譬如HKCR、HKLM、HKR等
  19. Qomo OpenProject Field Test 3发布!
  20. patapon2 烧饼_PSP《啪嗒砰2》17种兵种详细说明

热门文章

  1. ASP.NET Web窗体(.NETFromWork应用程序) ADO.NET 实体数据模型 关于多表联查显示的实现
  2. Django基础学习
  3. springboot+mysql+基于web的在线问答社区系统设计与实现 毕业设计-附源码061628
  4. 编程,统计用户输入的一串英文文本中各单词的出现频率。
  5. 3 将tar文件压缩为tar.gz
  6. 用python turtle画人_Python中如何用turtle库画出小猪佩奇社会人
  7. Boolean数据类型
  8. 卷积神经网络 - 车辆识别
  9. 简单垂直搜索引擎入门(java+Lucene)
  10. 初学编译原理——构造一个DFA,它接受字母表∑={0,1}上能被能5整除的二进制数