作者:Alark Joshi

翻译:陈雨琳

来源:数据派THU(ID:DatapiTHU)

我教授了一门关于数据可视化的数据科学硕士课程。我们的数据科学硕士项目是一个为期15个月的强化项目,这个项目已经成功地培养了许多优秀的数据科学家。

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

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

01 Python中的数据可视化

现在大部分的数据可视化研究都是通过D3进行的。遗憾的是,我只有短短8周跟学生相处的时间,所以我只能专注于讲授理论和实践相结合的内容来帮助他们成为数据科学家。

虽然学生乐于使用可视化技术探索并解释问题,但他们中的大多数对于使用D3创建美丽的自定义可视化不太感兴趣。根据之前教授这门课的教授反馈来看,在这么短的时间内教授D3是不可能的。

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

02 Seaborn的静态可视化

鉴于我过去使用seaborn的经验,我很高兴能够向学生介绍seaborn产生的美丽的可视化图案。他们已经有了使用matplotlib的经验,所以学习seaborn时很容易,且优势巨大。

学生能够制作散点图(双变量和多变量),swarmplots,小提琴图,条形图,箱形图和带有刻面的直方图。他们了解到,使用大型数据集生成swarmplots非常耗时,而基于摘要的图(如小提琴图)是更好的选择。

▲Seaborn中的可视化技术示例

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

虽然seaborn能够产生美丽的可视化图形,但它们都是静态的。我希望学生体验使用交互技术(如梳理,过滤,缩放和悬停)的好处。为此,我介绍了可视化库Bokeh和Plot.ly,利用它们可以轻松实现交互式数据可视化。

对于时间序列可视化分配,学生可以选择使用Bokeh或 plot.ly来实现多线图(multi line charts),热图(heatmaps),动画气泡图(animated bubble charts)等。

▲使用plot.ly创建的可视化示例,图片来源:PolicyViz

▲Bokeh中的交互式可视化,图片来源:Christine Doig

04 可视化树,图和网络

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

▲使用squarify包只能生成一级树图,图片来源:The Python Graph Gallery

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

05 地学可视化

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

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

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

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

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

06 文本可视化

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

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

07 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演讲数据集可视化的简单案例。

http://campa-gupta.herokuapp.com/

08 Altar会是理想的选择吗?

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

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

▲Altair示例库中的交互式可视化示例集合,图片来源:Altair Gallery

09 总结

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

致谢:感谢Sophie Engle教授提供的讲座笔记,让我在整个学期的讲课都很顺利。感谢Shirley Wu和Robert Gove为早期的草稿提供了极有价值的反馈。

原文标题:

We need more Interactive Data Visualization tools (for the Web) in Python

原文链接:

https://medium.com/@alark/we-need-more-interactive-data-visualization-tools-for-the-web-in-python-ad80ec3f440e

关于译者:陈雨琳,清华大学大二在读,英语专业。专业学习之外喜欢学些数学、计算机类课程,被数据和模型的魅力所吸引,希望未来能往这个方向发展。道阻且长,行则将至。

python交互式数据可视化_基于Python实现交互式数据可视化的工具,你用过几种?...相关推荐

  1. python 3d大数据可视化_基于Python的数据可视化库pyecharts介绍

    什么是pyecharts? pyecharts 是一个用于生成 Echarts 图表的类库. echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生 ...

  2. python气象绘图速成_基于Python气象数据处理与可视化分析

    基于 Python 气象数据处理与可视化分析 张鑫 ; 曹蕾 ; 韩基良 [期刊名称] <气象灾害防御> [年 ( 卷 ), 期] 2020(027)001 [摘要] 全国综合气象信息共享 ...

  3. python朋友圈数据分析_基于Python的微信朋友圈数据可视化分析之地点

    前提 朋友圈的相关数据请参照上一篇文章<基于Python的微信朋友圈数据可视化分析之个性签名>获取,本篇文章默认需要的数据已经下载保存至本地的 csv 文件中了. 将好友的地点按照省份进行 ...

  4. 用python做生物信息数据分析_基于Python的自动获取生物信息数据的软件设计

    基于 Python 的自动获取生物信息数据的软件设计 * 周斯涵,刘月兰 ** [摘 要] [摘 要] 从国际生物信息学数据库中采集数据来进行相关领域的分析, 但随着数据库规模不断扩大 , 数据来源种 ...

  5. 基于python的气象数据分析_基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其......

    文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...

  6. python怎么爬取新浪微博数据中心_基于Python的新浪微博位置数据获取方法研究....

    [1] 新浪微博数据中心.2017微博用户发展报告[EB/OL].[2017-12-25]. http://data.weibo.com/report/reportDetail?id=404. [2] ...

  7. python数据采集系统_基于python的聚焦网络爬虫数据采集系统设计与实现

    基于 python 的聚焦网络爬虫数据采集系统设计与实现 杨国志 ; 江业峰 [期刊名称] < <科学技术创新> > [年 ( 卷 ), 期] 2018(000)027 [摘要 ...

  8. python画多层网络_基于Python的多层网络可视化包Multinetx

    之前记录过基于R语言和Octave的多层网络可视化工具,但安装起来比较麻烦,发现Github上有基于Python的版本,提供了supra-adjency和多关系网络可视化,直接看:https://gi ...

  9. python电影推荐算法_基于Python的电影推荐算法

    原标题:基于Python的电影推荐算法 第一步:收集和清洗数据 数据链接:https://grouplens.org/datasets/movielens/ 下载文件:ml-latest-small ...

最新文章

  1. OpenCV 2.4.9-2.4.13各个版本附加依赖项Lib文件汇总
  2. Go环境搭建、Sublime Text 3 安装Go语言相关插件gosublime
  3. 软件测试 单元测试用例设计,单元测试的用例设计
  4. Jenkins设置svn授权
  5. 涨姿势!北京地铁原来是16条旅游专线
  6. base64补等号规则说明
  7. python中scale_Scale
  8. html5的网络书店图书网站代码_【技能提升】10个编写HTML5的实用小技巧
  9. 【做题记录】[NOIP2016 普及组] 魔法阵
  10. CodeForces 696B Puzzles
  11. Spark流编程指引(三)-------------------------------------初始化StreamingContext
  12. 求解下列递推关系式_装错信封问题及九连环问题的递推关系式以及通项公式的推导(尤其是高中生一定要读)...
  13. 阿里登顶毕马威全球企业创新榜 AliOS引领智能网联汽车产业发展
  14. 微型计算机技术 论文,微型计算机技术课程设计论文报告微机交通灯控制系统_毕业论文.docx...
  15. Kubernetes 详解
  16. SAP PI SLD RZ70 系统架构目录数据提供者 HTTP(S) 配置
  17. 采用生产者消费者模式爬取毛豆新车网
  18. verilog REG 寄存器、向量、整数、实数、时间寄存器
  19. Sentry 开发者贡献指南 - SDK 开发(性能监控)
  20. 豆豆趣事[2016年03月]

热门文章

  1. Leetcode 24——Swap Nodes in Pairs
  2. ACM学习历程—HDU5668 Circle(数论)
  3. ASP.NET DAY1
  4. 高等数学(工本)填空题
  5. 一次百万长连接压测 Nginx OOM 的问题排查分析
  6. 流量分析的瑞士军刀:Zeek
  7. ubuntu测量机器的温度
  8. 8196国开计算机专业英语,电大计算机网络(本)学习周期01任务A_0002答案
  9. php 瓶颈,追踪php代码性能瓶颈
  10. 【Linux】七种运行级别