您的位置:首页 > 运维架构 > 网站架构

强大高可用的数据可视化神器plotly_express实践记录

2020-03-23 18:24 1306 查看

       在正式将自己的主要绘图模块转移到plotly之前,我相信绝对大数的数据分析相关的从业者都是主要基于matplotlib来进行数据探索分析或者是可视化展示相关的工作的,着实,matplotlib也是真的十分强大。对于我而言,matplotlib算得上是最早使用到的库,早在14年的时候就接触到了,但是当时数据分析四大天王Numpy、Pandas、Scipy和Matplotlib的安装真的是超级折磨人的,各种版本之前的不兼容和冲突,导致初学者最开始实践变得很困难,到16年的时候情况变得好多了,一键式安装变成了这些主流模块的标配,matplotlib应该算是比较底层的绘图模块了,它可定制性强、内置的图标资源也十分丰富,绘图组件的API讲解详细,参数也很好理解自然使用起来没有多大的困难,所以广受欢迎,除此之外很多更加高级的绘图工具是建立在matplotlib基础上构建的,比如:Yellowbrick、Seaborn等等,这里简单列一些其他的绘图模块,主要包括:Yellowbrick、Seaborn、pyecharts、ggplot、plotly、plotnine、holoviews、basemap、altair、pygal、vispy、networkx、bokeh、folium、leather、Chaco 、VPython 等等,有专门针对地图数据可视化开发的模块,也有通用性的数据可视化模块,除了上述常规性的数据可视化模块之外,还有一个高级的应用可视化模块,比如:神经网络的可视化模块,感兴趣的话可以去读一下我下面的文章:

                                                《神经网络结构可视化工具总结实践大全》

      相信你会能找到需要的工具的。

      为什么今天明明是讲解可视化神器plotly_express的,但是上面讲了那么多的关于matplotlib以及其他的一些模块的内容呢?其实plotly本身也是一个非常强大的工具,奈何它的原生API过于繁琐,绘图的设置项太多,导致很多开发或者是分析人员望而却步,正是由于这种情况的客观存在,开发者对其原生的API进行了更加高级的封装,开发了新的模块,也就是现在的plotly_express,Plotly Express是一个简洁,一致的高级API,可用于快速数据浏览和图形生成。plotly_express极大地简化了数据可视化的工作量,解放了分析人员的工作。

    安装命令为: pip install plotly_express

   安装成功截图如下:

       这里首先给出来开源地址:
       plotly地址在这里。数据概览截图如下:

      plotly_express地址在这里。简介如下:

       官方的文档详细地址在这里。截图如下:

        接下来,我们来详细讲解plotly_express的使用。本文的实践我均基于jupyter-notebook来完成,文章最后会提供使用到的完整代码。

       首先是一些基础的介绍内容,如下所示:

[code]#!usr/bin/env python
# encoding:utf-8
from __future__ import division

"""
__Author__:沂水寒城
功能: plotly_express 数据可视化实践

官方API说明:  https://plot.ly/python-api-reference/plotly.express.html
官方绘图教程: https://plot.ly/python/plotly-express/

核心组件简介:
scatter:散点图
在散点图中,每行data_frame由2D空间中的符号标记表示;

scatter_3d:三维散点图
在3D散点图中,每行data_frame由3D空间中的符号标记表示;

scatter_polar:极坐标散点图
在极坐标散点图中,每行data_frame由极坐标中的符号标记表示;

scatter_ternary:三元散点图
在三元散点图中,每行data_frame由三元坐标中的符号标记表示;

scatter_mapbox:地图散点图
在Mapbox散点图中,每一行data_frame都由Mapbox地图上的符号标记表示;

scatter_geo:地理坐标散点图
在地理散点图中,每一行data_frame都由地图上的符号标记表示;

scatter_matrix:矩阵散点图
在散点图矩阵(或SPLOM)中,每行data_frame由多个符号标记表示,在2D散点图的网格的每个单元格中有一个,其将每对dimensions彼此相对绘制;

density_contour:密度等值线图(双变量分布)
在密度等值线图中,行data_frame被组合在一起,成为轮廓标记,以可视化该值的聚合函数histfunc(例如:计数或总和)的2D分布z;

density_heatmap:密度热力图(双变量分布)
在密度热图中,行data_frame被组合在一起,成为彩色矩形瓦片,以可视化该值的聚合函数histfunc(例如:计数或总和)的2D分布 z;

line:线条图
在2D线图中,每行data_frame表示为2D空间中折线标记的顶点;

line_polar:极坐标线条图
在极线图中,每行data_frame表示为极坐标中折线标记的顶点;

line_ternary:三元线条图
在三元线图中,每行data_frame表示为三元坐标中折线标记的顶点;

line_mapbox:地图线条图
在Mapbox线图中,每一行data_frame表示为Mapbox地图上折线标记的顶点;

line_geo:地理坐标线条图
在地理线图中,每一行data_frame表示为地图上折线标记的顶点;

parallel_coordinates:平行坐标图
在平行坐标图中,每行data_frame由折线标记表示,该折线标记穿过一组平行轴,每个平行轴对应一个平行轴 dimensions;

parallel_categories:并行类别图
在并行类别(或平行集)图中,每行data_frame与其他共享相同值的行组合,dimensions然后通过一组平行轴绘制为折线标记,每个平行轴对应一个dimensions;

area:堆积区域图
在堆积区域图中,每行data_frame表示为2D空间中折线标记的顶点。连续折线之间的区域被填充;

bar:条形图
在条形图中,每行data_frame表示为矩形标记;

bar_polar:极坐标条形图
在极坐标条形图中,每一行都data_frame表示为极坐标中的楔形标记;

violin:小提琴图
在小提琴图中,将data_frame每一行分组成一个曲线标记,以便可视化它们的分布;

box:箱形图
在箱形图中,data_frame的每一行被组合在一起成为盒须标记,以显示它们的分布;

strip:长条图
在长条图中,每一行data_frame表示为类别中的抖动标记;

histogram:直方图
在直方图中,每一行data_frame被组合在一起成为矩形标记,以可视化该值的聚合函数histfunc(例如,计数或总和)的1D分布y(或者x,如果orientation是'h'时);

choropleth:等高(值)区域地图
在等值区域图中,每行data_frame由地图上的彩色区域标记表示;
"""

      接下来我们详细看一下它提供的内置的色谱、色序等详细的数据:
      px.colors.qualitative.swatches()

        px.colors.sequential.swatches()

       接下来,我们基于内置的人口寿命数据集gapminder来进行实践讲解:

       数据集概览信息如下:

       点击【https://www.gapminder.org/data/】就可以去网站查看需要的数据,截图如下:

       对数据集有了初步的了解后,接下来就是分析和可视化展示了。

      借助于空间地图来更加直观地进行展示分析。

 

      之后,我们针对内置的鸢尾花数据集iris进行分析与可视化。

       iris数据集概览信息如下:

      原始数据可视化:

      类别数据可视化:

    散点图+直方图:

        鸢尾花数据集特征分布图

        热力图:

      从鸢尾花数据集的可视化可以看到,plotly_express模块真的是非常地强大和全能了。

      针对tips数据集我们也进行了简单的分析与可视化工作。

       数据集概览信息如下:

      散点图: 

        直方图: 

     箱线图:

      最后我们同样针对election数据集进行了简单的实践使用。

      数据集概览信息如下:

       金字塔类别数据可视化:

      上面是我们针对该模块提供的一些内置的数据集进行的分析与可视化工作,除此之外,plotly_express在其他方面也有不错的应用,我们来简单看一下:
     图像数据生成与可视化:

      在风速气象数据上也可以非常方便地绘制极坐标散点图、玫瑰图等等。

       到这里是不是以为plotly_express的功能都介绍完了?当然不是的, plotly_express是为数不多的兼具地图数据可视化的绘图工具,这里简单演示一下地图可视化的应用,具体实现如下:

       不知不觉写了这么多的内容,希望这些内容能帮到需要的人,也欢迎沟通交流!

       本来贴好了源码,结果提交的时候报错:

    只好放弃了,不过官方有很不错的代码实例的,需要的话可以拿去改造使用的。

 

  • 点赞 5
  • 收藏
  • 分享
  • 文章举报
Together_CZ 博客专家 发布了530 篇原创文章 · 获赞 1292 · 访问量 333万+ 他的留言板 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: