又双叒叕要跟客户汇报了,图都准备好了吗?matplotlib出图嫌丑?那用用plotly吧,让你的图看上去经费爆炸~

P1 起因

第一次接触plotly这个库是在我们做的一个列车信号数据挖掘的项目里,当时用下来总觉得有些云里雾里的,感觉非常不方便,API也不熟悉。后来又在别的项目上摸索了几次,突然发现这个库套路还是很清晰的,可能我对官方教程的理解还不太透彻。于是我打算把自己摸索出来的内容写下来。本文仅针对离线绘图,即使用 plotly.offline.iplot(fig) 绘图。

P2 整体框架

首先我们导入一些必要的内容:

import plotly
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
from plotly import tools
init_notebook_mode(connected=True)

如果你在Jupyter Notebook中发现你的图无法显示,或者一篇空白,请检查右上角是否为"Trusted"状态,不是话点一下,将其转为Trusted,如还不显示,就试试Ctrl+F5强制刷新。

官方的教程主要是基于一个个单独的实例,不太容易举一反三。但其实plotly的套路非常简单朴实。

总体来说,当我们绘制一张图时,我们需要通过一个go.Figure实例,我们可以把它当做画布。在go.Figure中,有2个东西十分重要,一个是data,主要是我们的数据;另一个是layout,关乎图面布局。

data传入的是一个列表,里面可以包含一组或多组数据,每一组数据被封装在一个图形实例中,比如go.Scatter(线图)或者go.Heatmap(热力图),每个图形实例中都包含了数据本身,以及和数据相关的某些绘图属性。

layout传入的则是一个go.Layout实例,我们可以为其增加不同的属性来实现对图面布局的控制。

而当我们需要分图时,我们会使用tools.make_subplots(),并通过append_trace()来将data贴进不同的分图,其他都是大同小异,依旧使用layout来控制图面。

P3 示例代码

我分别针对最常用的几种图:线图、条形图、地图和热力图写了一些示例代码,详见:

https://nbviewer.jupyter.org/github/SilenceGTX/plotly_demo/blob/bbb1fdbc6ee9706cbbbacc5f72444e6f4111b346/plotly_visualization_Demo.ipynb

转载于:https://www.cnblogs.com/silence-gtx/p/10667131.html

野路子码农系列(3)plotly可视化的简单套路相关推荐

  1. cocos2d-x视频教材(无脑码农系列)

    本帖最后由 无脑码农 于 2013-3-8 19:15 编辑 本人也最近接触cocos2d-x,学习新知识的时候很苦逼,毫无头绪滴说,于是想到了,如果后来新人也会经历一个我这样苦逼的过程,于是就萌生了 ...

  2. 数据科学系列:plotly可视化入门介绍

    导读 在入道数据岗位之初,曾系列写过多个数据科学工具包的入门教程,包括Numpy.Pandas.Matplotlib.Seaborn.Sklearn等,这些也构成了自己当初的核心工具栈.在这5个工具包 ...

  3. Spring IOC 容器源码分析系列文章导读

    1. 简介 前一段时间,我学习了 Spring IOC 容器方面的源码,并写了数篇文章对此进行讲解.在写完 Spring IOC 容器源码分析系列文章中的最后一篇后,没敢懈怠,趁热打铁,花了3天时间阅 ...

  4. 快速排序 - 算神码男人系列

    Hi,我是哈缺氧.今天带给大家的是算神码男人系列快速排序. 思路很简单,如图所示. 根据这个思路,第一次,我写出了如下代码. private static void qsort(int[] arr, ...

  5. 实在不好意思!我的发音让你恶心了!盘点这些让百万年薪老码农都读错的单词!

    第006期原创分享 大家好,我是hub妹!我们又见面了,本期我们来聊一下那些连老码农们都读不准的英文单词. 最近每到夜晚睡觉前,Hub妹脑海里总是回荡着一位男同事魔性的声音:"查普特&quo ...

  6. 解放码农,飞算全自动软件工程平台的创新“套路”

    一个普通IT工程师凭借飞算全自动软件工程平台,毫不费力地仅用28分钟轻松挑战三个资深IT工程师近两个小时才能完成的开发工作成功.11月17日这样一个现场PK活动环节,引发了业内众多的讨论. 不敲入任何 ...

  7. 提升码农90%学习效率的10大学习工具

    程序员永远要留出时间学习,进行自我迭代和升级,才能不被淘汰!学习才是根本,只有不断地学习不断地吸收营养,我们职业生涯这颗小树苗才有可能成长为参天大树.这很难,因为即使是真正聪明的人也很难读懂那些前沿论 ...

  8. 不看你都不知道,原来码农的诞生这么不容易

    有一种神秘的生物,他们习惯身上穿着格子脸上顶个黑镜框,身后的电脑包是他们的武器装备,常常出没在地铁末班车上,黑眼圈和无尽的黑夜一起沉沦,沉沦--没错,他们是程序猿,一种类人型智慧生物(手动滑稽). 作 ...

  9. 老码农揭开行业黑幕:如何编写无法维护的代码

    作者 | 老码农的自留地 来源 | 程序员的那些事 如何编写无法维护的代码 让自己稳拿铁饭碗 简介 永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无能.-- 拿破仑 为了造 ...

最新文章

  1. 多图指南——微信小程序设计规范
  2. ubuntu怎么安装python3操作系统32_ubuntu系统下安装python3
  3. 聊聊resilience4j的bulkhead
  4. BZOJ 1062 糖果雨
  5. 关于min max 函数凹凸性,以及报童模型中期望库存,期望缺货量的性质
  6. Canny 边缘检测设置自动阈值
  7. 目前主流的几种数字视频压缩编解码标准(转载)
  8. Hbase Schema设计与数据模型操作
  9. 手机里html转成pdf,HTML转成pdf
  10. ThreeJS-太阳球围绕旋转(二十四)
  11. MySQL 查看SQL语句执行阶段和进度信息
  12. 【转载】NetLogic买断多核芯片公司RMI
  13. 【转】游戏开发高度图有关资料与Balder中的相关支持
  14. Linux小白详细笔记
  15. [Django]MVT模式的详解
  16. Ubuntu同时使用中英文man手册
  17. 【无标题】开心开心开心
  18. 【C语言】运算符的优先级,结合方向(自左向右运算、自右向左运算)
  19. QT输入窗口之QDial(仪表盘)
  20. 计算机一级有很多套吗,计算机一级考试有(答案的10套题).doc

热门文章

  1. [EF Core]数据迁移(二)
  2. centos6 rsync+inotify 数据同步
  3. 基于ArcGIS JS API封装dojo微件(以工具条为例)
  4. Ruby版本管理(RVM)
  5. Log4j2异步日志背后的数字
  6. 一位读者刚刚收割阿里、腾讯等大厂Offer,他说这些话一定要和你们说一下
  7. Redis:事务、管道、Lua脚本
  8. 结构型模式:代理模式
  9. ad 原理图差分线_采用差分PulSAR ADC AD7982转换单端信号电路图
  10. flyway java使用,如何使用flyway创建数据库?