sketch可以做网站交互么,微信网站开发,哪里有网站建设流程,西安市建设工程信息王转自#xff1a;数据派ID#xff1a;datapi
作者#xff1a;Alark Joshi
翻译#xff1a;陈雨琳
校对#xff1a;吴金笛
本文2200字#xff0c;建议阅读8分钟。
本文将介绍实现数据可视化的软件包。
这学期#xff08;2018学年春季学期#xff09;我教授了一门关于数据…转自数据派IDdatapi
作者Alark Joshi
翻译陈雨琳
校对吴金笛
本文2200字建议阅读8分钟。
本文将介绍实现数据可视化的软件包。
这学期2018学年春季学期我教授了一门关于数据可视化的数据科学硕士课程。我们的数据科学硕士项目是一个为期15个月的强化项目这个项目已经成功地培养了许多优秀的数据科学家。
该项目的学生背景多元并且他们在上这门课前都对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创建的可视化示例
图片来源PolicyViz
Bokeh中的交互式可视化
图片来源Christine Doig
可视化树图和网络
在讨论分层数据可视化的技术时我很高兴地展示树状图可视化技术并将其与节点链接图进行了比较。遗憾的是当我深入挖掘时却没有找到实现多级树状图的方法L 即使在导入了squarify库之后你也只能在Python中生成一个一级树状图
使用squarify包只能生成一级树图
图片来源The Python Graph Gallery
精彩的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和geopandasmatplotlib只生成静态可视化所有我还没有尝试过。
文本可视化
我们学习了很多关于各种文本可视化技术的知识例如标签云(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是基于FlaskPlotly.js和React.js构建的同时增加了创建同步多视点可视化的障碍。我班上的一些学生团队使用Plot.ly Dash完成期末项目但他们学得非常快。以下链接中是一个关于Ryan Campa和Shikhar Gupta通过Dash实现TED演讲数据集可视化的简单案例。http://campa-gupta.herokuapp.com/
Altar会是理想的选择吗
随着课程的进展出现了一些关于Python 和 Vega组合成为Altair的消息我欣喜地得知我所使用的Vega来自UW Interactive Data Lab。Jim Vallandingam出色的“Altair简介”教程是一个很好的起点。
Altair的主要开发人员Jake VanderPlas最近发布了他的Python笔记本和PyCon 2018视频的链接。我从那以后一直在玩它我非常喜欢它数据科学家们希望探索他们的数据并创建可视化图形来从内部和外部解释它们。我希望它能满足数据科学家的需求。
Altair示例库中的交互式可视化示例集合
图片来源Altair Gallery
总结
数据科学家喜欢使用Python中的可视化库和包我希望像Altair这样的工具就是最终的实现途径。诸如plotlyseabornbokehgeoplotlib等软件包将继续发展并拥有更多功能。通过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
译者简介
陈雨琳清华大学大二在读英语专业。专业学习之外喜欢学些数学、计算机类课程被数据和模型的魅力所吸引希望未来能往这个方向发展。道阻且长行则将至。