Plotly Python 从理论到实战

本文介绍了Plotly Python库的使用,强调其交互性优势,并通过实例展示了如何创建、精修图形,包括条形图的绘制、图形的导出和使用方式,以及如何增强图形的可读性。
摘要由CSDN通过智能技术生成

Plotly Python 从理论到实战

Plotly Python 相比较seaborn,matplotlib等,最吸引用户的,当属他的交互属性。所谓交互,不仅仅指鼠标滑过是标签信息的展示,更多的是图例的联动、鼠标框选范围后数据的动态缩放,可以满足业务人员日常工作中对数据的审查与洞察。

背景知识小铺垫

工欲善其事必先利其器。要用好plotly,通读官方文档是少不了的。

Plotly 是一个图像的创建(create)、精修(manipulate)、渲染(render)的过程。官方推荐的入手工具包为plotly.express,但是对于复杂图形,例如多个子图subplots of different types,双/多坐标轴dual-axis plots,或者分图faceted plots,还是得回归鼻祖plotly.graph_objects.Figure

简单而言,一个图像由三大类核心元素构成,分别为data,layout, frames

data
说到data元素,要提一个名词,叫trace。不知道怎么翻译这个词,望文生义,暂时理解为是所有data属性下子元素的集合,冠名为trace

  • trace中需明确图形类型type:目前支持的图形类型超过40种,包含:scatter, bar, pie等;
  • 每个trace 会当做一个subplot来看待,除非使用subplots定义;
  • 每个trace 可定制设置图例legend
  • 部分trace type 支持continuous color 设置

layout
顾名思义,layout可个性化配置除数据之前所有,比如位置,标题,坐标轴,背景色。背景线等等。举例如下:

  • dimensions and margins,页边距的细节性配置。Plotly采用的不是精确地像素级定位,而是采用relative positioning,默认图形位置起点(0,0),终点(1,1)。可通过layout.margin调整;
  • template font color 等全局设置
  • 设置title legend:标题和图例
  • 设置系列颜色 color axes and associated color bars
  • 设置子图subplots参数
  • 给数据区域增加点评文字annotation(平时业务场景中常用)
  • 给数据区域增加参考线、警戒线、辅助线等 shapes
  • 给数据区域增加背景图images
  • 高阶使用:增加控制按钮undatemenus: single buttons toggles dropdown menus slider controls,有点驾驶舱产品的感觉了。

frame
主要用于annimated plot中。

纸上得来终觉浅,绝知此事要躬行。要想深入细致体会个个属性、自参数,还是要多作图,多感受,多总结,多思考。

图形导出及使用方式

在作图之前,先说图形的导出和使用,貌似有点本末倒置。但是考虑到身处“结果导向性”社会,会哭的孩子有奶吃,会秀的同事赛西施。结果到位了,才关心过程和细节。

一般来说,在jupyter notebook中作图后,可以选择静态图片导出fig.write_image('image_name.png'),也可以选择动态html导出 fig.write_html('file_name.html').

导出之前新建文件夹:新建文件夹有什么好处,不言而喻。

import os
if not os.path.exists("conda_images"):
    os.mkdir("conda_images")

后续导出文件时,在文件名称前增加文件夹名称即可

fig1.write_html('conda_images/scatter_exercise.html')

作图

对于怎么画图,官方给了两种方式,一种叫Figure as Dictionaries,一种叫Figures as Graph Object。 大多数时候,我们用的是第二种,包括使用plotly express plotly.graph_objects figure_factory make subplots 等等。

接下来以简单的条形图bar为例。

第一步:画图create

  1. 导入libraries
import plotly
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
import pandas as pd
import numpy as np
  1. 准备数据
    plotly内置了数据集,方便大家不受数据分析思路的背景下,练手用。可通过以下方式查看。
<
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值