Web开发

首页 » 常识 » 预防 » 基于Python实现交互式数据可视化
TUhjnbcbe - 2022/6/16 15:21:00
专家详细介绍白癜风丸说明书 http://baidianfeng.39.net/a_bdfzlff/140107/4322968.html

(给数据分析与开发加星标,提升数据技能)

英文:AlarkJoshi,转自:数据派(ID:datapi),翻译:陈雨琳

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

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

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

Python中的数据可视化

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

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

Saborn的静态可视化

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

Saborn中的可视化技术示例

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

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

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

图片来源:PolicyViz

Bokh中的交互式可视化

图片来源:ChristinDoig

可视化树,图和网络

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

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

图片来源:ThPythonGraphGallry

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

地学可视化

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

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

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

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

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

文本可视化

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

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

Wb的交互式数据可视化

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

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

1
查看完整版本: 基于Python实现交互式数据可视化