0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Python实现交互式数据可视化的工具

电子工程师 来源:fqj 2019-05-14 11:47 次阅读

该项目的学生背景多元,并且他们在上这门课前都对R和Python有了很深入的理解。通过各种课程的学习,他们已经能够熟练使用ggplot2和matplotlib,为学习大型多变量数据可视化打下了基础。

作为一个数据可视化的研究者,我想要介绍所有那些在数据可视化领域涌现的绝妙技术。因此,我的课程的其中一部分将会是基于研究论文,在线可视化和d3示例的讲座。

Python中的数据可视化

现在大部分的数据可视化研究都是通过D3进行的。遗憾的是,我只有短短8周跟学生相处的时间,所以我只能专注于讲授理论和实践相结合的内容来帮助他们成为数据科学家。虽然学生乐于使用可视化技术探索并解释问题,但他们中的大多数对于使用D3创建美丽的自定义可视化不太感兴趣。根据之前教授这门课的教授反馈来看,在这么短的时间内教授D3是不可能的。

鉴于我自己对Python的热爱和Python给学生带来的舒适体验,我决定向他们介绍Python中神奇的(我希望是的!)软件包,它们可以实现所有我向学生展示的内容。

Seaborn的静态可视化

鉴于我过去使用seaborn的经验,我很高兴能够向学生介绍seaborn产生的美丽的可视化图案。 他们已经有了使用matplotlib的经验,所以学习seaborn时很容易,且优势巨大。 学生能够制作散点图(双变量和多变量),swarmplots,小提琴图,条形图,箱形图和带有刻面的直方图。他们了解到,使用大型数据集生成swarmplots非常耗时,而基于摘要的图(如小提琴图)是更好的选择。

Seaborn中的可视化技术示例

用Bokeh或Plot.ly实现交互式可视化

虽然seaborn能够产生美丽的可视化图形,但它们都是静态的。我希望学生体验使用交互技术(如梳理,过滤,缩放和悬停)的好处。为此,我介绍了可视化库Bokeh和Plot.ly,利用它们可以轻松实现交互式数据可视化。对于时间序列可视化分配,学生可以选择使用Bokeh或plot.ly来实现多线图(multi line charts),热图(heatmaps),动画气泡图(animated bubble charts)等。

使用plot.ly创建的可视化示例

Bokeh中的交互式可视化

可视化树,图和网络

在讨论分层数据可视化的技术时,我很高兴地展示树状图可视化技术,并将其与节点链接图进行了比较。遗憾的是,当我深入挖掘时,却没有找到实现多级树状图的方法L即使在导入了squarify库之后,你也只能在Python中生成一个一级树状图!

使用squarify包只能生成一级树图

精彩的networkx软件包可以被用来分析图形和网络。 然而,网络可视化只能通过matplotlib或igraph或plotly来实现(请参阅使用plotly实现网络可视化的教程)。igraph有许多不同的选项可以帮助用户尝试配置图形,但是设置起来很不方便,因此许多学生在使用时遇到了问题。另一方面,plot.ly使用顺畅,但在自定义网络图方面几乎没有选择。

地学可视化

鉴于创建交互式映射图是数据可视化的重要组成部分,我对于找到能够创建等值区域图(choropleth maps),符号图(symbol maps),统计图(cartograms),交通图(transit maps)甚至流向图(flow maps)的软件包更有信心。以下是我在Python中发现的地学可视化库:

Plot.ly允许您创建等值区域图和符号图,但几乎无法控制图的创建过程。

geoplotlib是一个小巧好用的软件包,它建立在pyglet上,但它有点不稳定,经常崩溃。它使用OpenStreetMap图块,甚至允许基于动画的空间数据可视化。我很喜欢这个包,因为它里面有一些简洁好用的示例。

geoplot看起来很完美,其中有一些很棒的例子,但是我和我们的学生都无法安装它。鉴于我们大多数人都不使用conda,我们应该注意这个警告 - “请谨慎使用,因为这可能不适用于Windows,并且可能无法在OSX和Linux上运行。”

Cartopy和geopandas+matplotlib只生成静态可视化,所有我还没有尝试过。

文本可视化

我们学习了很多关于各种文本可视化技术的知识,例如标签云(tag clouds)(例如wordle),文档散(docubursts),平行标签云(parallel tag clouds),短语网络(phrase nets)和单词树(word trees),还介绍了主题探索和情感可视化技术。

不幸的是,除了word_cloud软件包之外,对于想要在Python中实现单个文档或大型文本集可视化的人来说,几乎没有其他选项。

Web的交互式数据可视化

当前,Bokeh和Plot.ly Dash是创建允许多视图刷选和过滤的交互式仪表盘的主要选择。Bokeh的示例非常少,而Plot.ly Dash对惯于在Python中创建可视化的用户来说则非常重要。

Plot.ly Dash是基于Flask,Plotly.js和React.js构建的,同时增加了创建同步多视点可视化的障碍。我班上的一些学生团队使用Plot.ly Dash完成期末项目,但他们学得非常快。以下链接中是一个关于Ryan Campa和Shikhar Gupta通过Dash实现TED演讲数据集可视化的简单案例。

Altar会是理想的选择吗?

随着课程的进展,出现了一些关于Python 和Vega组合成为Altair的消息!我欣喜地得知我所使用的Vega来自UW Interactive Data Lab。Jim Vallandingam出色的“Altair简介”教程是一个很好的起点。

Altair的主要开发人员Jake VanderPlas最近发布了他的Python笔记本和PyCon 2018视频的链接。我从那以后一直在玩它,我非常喜欢它!数据科学家们希望探索他们的数据并创建可视化图形来从内部和外部解释它们。我希望它能满足数据科学家的需求。

Altair示例库中的交互式可视化示例集合

总结

数据科学家喜欢使用Python中的可视化库和包,我希望像Altair这样的工具就是最终的实现途径。诸如plotly,seaborn,bokeh,geoplotlib等软件包将继续发展,并拥有更多功能。通过Python实现的交互式数据可视化(用于Web)将有一个更光明的未来,我们期待这一天!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439

原文标题:基于 Python 实现交互式数据可视化的工具(用于 Web)

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数据可视化Python-matplotlib概述

    数据可视化(二):Python-matplotlib
    发表于 07-22 14:58

    python数据可视化的方法和代码

    Python数据可视化汇总
    发表于 10-14 14:59

    Python数据可视化专家的七个秘密

    分享 Python数据可视化专家的七个秘密
    发表于 05-15 06:43

    python数据可视化之画折线图

    python数据可视化之画折线图,散点图
    发表于 05-27 08:09

    Python数据可视化

    Python数据可视化:网易云音乐歌单
    发表于 07-19 08:30

    VR与三维可视化在电厂中的作用

    才会拥有的体验。智能培训模块采用虚拟现实技术,利用数字电厂的数据,建立相应的软硬件平台,利用定制的电厂三维模型,方便快捷地实现三维展示或者VR体验,提供安全的多用户虚拟世界,通过交互式
    发表于 12-03 15:03

    华秋DFM可视化BOM交互焊接工具——SMT工厂、PCB工程师的福音来了!

    电络铁就搞定了,如果样品几块板使用机器焊接,样品的价值都还不够开机器的费用。为了提升手工焊接的工作效率及元器件焊接的正确率,华秋DFM推出了BOM清单与PCB图交互可视化焊接工具。此工具
    发表于 12-23 10:59

    华秋DFM推出可视化BOM交互焊接工具,助力SMT工厂提升效率

    电络铁就搞定了,如果样品几块板使用机器焊接,样品的价值都还不够开机器的费用。为了提升手工焊接的工作效率及元器件焊接的正确率,华秋DFM推出了BOM清单与PCB图交互可视化焊接工具。此工具
    发表于 12-23 11:16

    Python拉勾网数据采集与可视化

    本文是先采集拉勾网上面的数据,采集的是Python岗位的数据,然后用Python进行可视化。主要涉及的是爬虫&
    的头像 发表于 03-13 14:18 3229次阅读
    <b class='flag-5'>Python</b>拉勾网<b class='flag-5'>数据</b>采集与<b class='flag-5'>可视化</b>

    Python实现PLC数据可视化呈现于Web端

    现介绍另一种通过Python实现PLC数据可视化呈现于Web端的方案。
    的头像 发表于 08-30 11:27 6979次阅读
    <b class='flag-5'>Python</b><b class='flag-5'>实现</b>PLC<b class='flag-5'>数据</b><b class='flag-5'>可视化</b>呈现于Web端

    Python数据可视化编程实战

    Python数据可视化编程实战资料免费下载。
    发表于 06-01 14:37 29次下载

    交互式单线图(SLD)实现工厂数据可视化

    对于基础设施的可视化,所谓的“交互式单线图”(SLD)是一个极好的工具。为此,建议使用SmartCollect SC²交互式单线图中的各种选项:
    发表于 09-22 10:43 894次阅读

    使用Python构建基于web应用程序的交互式仪表板

    执行端到端数据科学和分析管道的自由。将这两个项目结合起来,即使在单个 GPU 上,也可以实现对数千兆字节数据集的实时、交互式可视化分析。
    的头像 发表于 04-21 14:54 1384次阅读

    使用Python来收集、处理和可视化人口数据

    如何使用Python这一流行的编程语言来收集、处理和可视化印度和中国的人口数据呢?本文将向你介绍一些基本的步骤和技巧,帮助你掌握Python进行可视
    的头像 发表于 06-21 17:08 1333次阅读
    使用<b class='flag-5'>Python</b>来收集、处理和<b class='flag-5'>可视化</b>人口<b class='flag-5'>数据</b>

    如何实现三维地图可视化交互系统

    三维地图可视化 交互系统是一种基于三维地图技术的交互式应用程序,可以呈现地理信息和空间数据的立体展示,并提供用户友好的
    的头像 发表于 07-19 18:20 815次阅读