文章图片
Python 非常适合数据探索和数据分析,这一切都要归功于 numpy、pandas、matplotlib 等令人惊叹的库的支持。在我们的数据探索和数据分析阶段,了解我们正在处理的数据非常重要,因此数据的可视化表示非常重要。
如何使用Plotly实现交互式数据可视化?我们经常使用 Jupyter notebook 处理这些项目,因为它们很棒、快速、简单,并且允许我们与数据进行交互和玩耍。然而,我们能做的事情是有限制的,通常当我们处理图表时,我们使用 matplotlib 或 seaborn 等库,但这些库渲染我们的图表和图形的静态图像。但是很多东西都在细节中丢失了,因此我们需要微调我们的图表来探索我们的数据部分。如果我们可以通过放大与我们的图表进行交互,将上下文信息添加到我们的数据点(如悬停交互),那不是很好吗?这是 Plotly 可以帮助我们的地方。
Python如何实现交互式数据可视化?Plotly 是一个 Python 库,可以制作交互式的、出版质量的图形,如折线图、散点图、面积图、条形图、误差线、箱线图、直方图、热图、子图等等。
但我们已经谈得够多了,让我们开始构建一些图表……
安装依赖实现交互式数据可视化示例:在我们构建任何东西之前,让我们安装依赖项。我喜欢使用,
pipenv
但这同样适用于 anaconda 或其他包管理器。这是我们需要的依赖项列表
- jupyter:Web 应用程序,可让你创建和共享包含实时代码、方程式……的文档。你知道的!
- pandas:非常强大的数据分析库,我们将在我们的项目中使用它来处理我们的数据
- numpy:Python 的科学计算,在我们的项目中用于数学和生成随机数
- seaborn:基于 matplotlib 的统计数据可视化,我们将使用它来加载库附带的一些示例数据
- cufflinks:允许与熊猫一起工作
- plotly:交互式图表库
pipenv install jupyter
pipenv install plotly cufflinks pandas seaborn numpy
入门Python如何实现交互式数据可视化?首先,我们需要启动我们的 jupyter notebook 并创建一个新文档:
pipenv run jupyter notebook
一旦我们到了那里,我们就可以开始添加一些代码。由于本文不是 Jupyter Notebooks 的教程,我将只关注代码而不是如何使用文档。
让我们开始导入库:
import pandas as pd
import numpy as np
import seaborn as sns
import cufflinks as cf
Plotly 在其他库的帮助下可以在不同的上下文中渲染绘图,例如在 jupyter notebook 上、在 plotly 仪表板上在线等。默认情况下,库在离线模式下工作,这正是我们想要的。但是,我们还需要告诉袖扣我们将对图表使用离线模式。可以通过将以下单元格添加到我们的笔记本中来以编程方式完成此设置:
cf.go_offline()
现在我们准备好获取一些数据并开始绘图。
生成随机数据我不想过多关注如何加载或检索数据,因此,我们将简单地为图表生成随机数据,在新单元格中,我们可以使用 pandas 和 numpy 来构建 3d 矩阵:
df = pd.DataFrame(np.random.randn(300, 3), columns = [
"X", "Y", "Z"])
df.head()
太棒了,使用 numpy 我们可以生成我们的随机数,我们可以将它们加载到 Pandas DataFrame 对象中。让我们看看我们的数据是什么样的:
df.head()
我们得到:
XYZ
00.1761171.2216481.201206
11.931615-2.3036671.914741
21.213322-0.434855-0.639277
30.7632200.118211-0.838034
40.2454420.6978971.169540
那太棒了!是时候绘制一些图表了。
我们的第一个地块如何使用Plotly实现交互式数据可视化?绘制 DataFrame 的一种便捷方法是使用系列和 DataFrame 上可用的 iplot 方法,由袖扣提供。让我们从所有默认值开始:
df.iplot()
文章图片
我们上面的图表肯定比静态图表好,但仍然不是很好。让我们尝试使用散点图呈现相同的图表。
df.iplot(mode = "markers")
文章图片
df.iplot(mode = "markers", size = 5)
文章图片
条形图
Python如何实现交互式数据可视化?让我们暂时忘记我们随机生成的数据集,让我们从 seaborn 库中加载一个流行的数据集来呈现其他一些图表类型。
titanic = sns.load_dataset("titanic")
titanic.head()
文章图片
我们将要处理的数据集称为“泰坦尼克号”,其中包含有关在泰坦尼克号那悲惨的日子里旅行的人发生了什么的信息。
这个数据集中的一个特殊变量是
survived
变量,它包含布尔信息,0代表死亡,1代表事故幸存者。让我们建立一个条形图,看看男人和女人是如何幸存下来的:titanic.iplot(kind = "bar", x = "sex", y = "survived")
文章图片
titanic.iplot(kind = "bar", x = "sex", y = "survived", title = "Survivors", xTitle = "Sex", yTitle = "Number of survived")
文章图片
但是如果我们想绘制一个水平条形图呢?足够简单:
titanic.iplot(kind = "barh", x = "sex", y = "survived")
文章图片
主题实现交互式数据可视化示例 - 到目前为止,我们的图表看起来很棒,但也许我们想为我们的图表使用不同的颜色模式。幸运的是,我们有一组主题可以用来渲染我们的情节。让我们列出它们并切换到另一个。
上市主题:
cf.getThemes()
它应该输出如下内容:
[
'ggplot', 'pearl', 'solar', 'space', 'white', 'polar', 'henanigans']
我们可以通过简单地添加以下内容来切换所有未来图表的主题:
cf.set_config_file(theme="solar")
现在,如果我们再次渲染条形图,我们会得到如下结果:
titanic.iplot(kind = "bar", x = "sex", y = "survived")
文章图片
表面图如何使用Plotly实现交互式数据可视化?到目前为止,我们渲染了惊人的 2d 图表,但 plotly 也支持 3d 图表。让我们构建一些 3d 图表来获得一些乐趣。下一个图,我们将其设为 3D 曲面图,为此,我们需要使用 Pandas 创建一些数据,如下所示:
df = pd.DataFrame({"A": [
100, 200, 300, 200, 100], "B": [
100, 200, 300, 200, 100], "C": [
100, 200, 300, 200, 100]})
df.head()
你应该得到类似的东西:
ABC
0100100100
1200200200
2300300300
3200200200
4100100100
现在让我们使用“表面”类型将其放在 3d 图表上。
df.iplot(kind = "surface")
文章图片
df.iplot(kind = "surface", colorscale = "rdylbu")
文章图片
结论Python如何实现交互式数据可视化?Plotly 是你数据探索和分析的绝佳图表替代品。正如所见,它提供了交互式仪表板,可以帮助你更好地识别异常值并通过浏览数据更好地了解数据。我可能不会对每个数据集都使用 plotly,但它是一个我们应该知道的非常有趣的库。
【如何使用Plotly和Python实现交互式数据可视化()】谢谢阅读!
推荐阅读
- 5个经典JavaScript问题和答案来测试你的技能
- 17个Python常见面试题和答案合集(面试必备)
- Node如何使用Elasticsearch(构建搜索引擎示例)
- 如何使用Electron构建桌面应用程序(分步指南)
- 如何使用NodeJS和AWS Lambda实现无服务器()
- Puppeteer和NodeJS如何将网页转换为PDF()
- Windows 8.1专业版降低硬盘读写频率的多种技巧
- windows 8系统下注册微软账户的技巧
- Windows 8.1系统调整系统服务保护磁盘读写次数