如何在Python中使用Plotly绘制数据

294 阅读6分钟

在靠近用户的地方部署容器

本工程教育(EngEd)计划由科支持。

在全球范围内即时部署容器。Section是经济实惠、简单而强大的。

免费入门

如何使用Plotly在Python中绘制数据图

10月19日, 2021

谈到数据科学,数据可视化是必不可少的。它通常是任何数据分析工作的第一步。在你开始工作之前,可视化数据通常能让你对数据有一个直观的了解。

可视化通常可以帮助你看到数据中的一些模式,否则你可能无法看到。

在本教程中,我们将使用Python中的Plotly进行数据可视化。

前提条件

要理解本教程,你需要: 1:

什么是plotly?

Plotly是一个用于数据可视化和图形化的开源框架。如果你正在建立任何分析性的演示文稿或试图解释结果,它是一个伟大的工具。它是独立于语言的。

你不仅可以在Python中使用它,还可以用于其他语言,如R、MATLAB、Perl、Julia、Arduino和REST。我们将首先对Plotly和Matplotlib进行比较,以确定两者的对比情况。

plotly比matplotlib好吗?

Plotly和matplotllib是用于数据可视化的工具。但是,它们确实有其不同之处。

  • Plotly更专注于网络浏览器和构建交互式图表,而matplotlib则更专业和科学,因为它有无数的自定义选项。

  • 为了创建好看的matplotlib图表,你需要花一些时间来编写显示图表所需的代码。只需几行代码,使用plotly就可以轻松实现数据的可视化。你可以用matplotlib完成同样的结果,但你必须写更多的代码,因为这是一个更复杂的过程。

那么,哪个更好呢?这取决于你的使用情况。Plotly更好,因为它在网络浏览器上运行,它是互动的,而且你可以快速地将你的数据可视化,而不需要写复杂的代码。

如果你的目标是创建更专业和科学的可视化,请选择matplotlib。使用一个示例数据集,让我们来学习如何使用这个库来实现数据的可视化。

创建数据可视化

我们需要首先在我们的Google colab中安装plotly。

!pip install plotly==5.3.1 
import plotly.express as px #for visualization
gapminder_df = px.data.gapminder()

让我们来看看这个数据。

gapminder_df
    country     continent   year    lifeExp     pop     gdpPercap   iso_alpha   iso_num
0   Afghanistan     Asia    1952    28.801  8425333     779.445314  AFG     4
1   Afghanistan     Asia    1957    30.332  9240934     820.853030  AFG     4
2   Afghanistan     Asia    1962    31.997  10267083    853.100710  AFG     4
3   Afghanistan     Asia    1967    34.020  11537966    836.197138  AFG     4
4   Afghanistan     Asia    1972    36.088  13079460    739.981106  AFG     4
...     ...     ...     ...     ...     ...     ...     ...     ...
1699    Zimbabwe    Africa  1987    62.351  9216418     706.157306  ZWE     716
1700    Zimbabwe    Africa  1992    60.377  10704340    693.420786  ZWE     716
1701    Zimbabwe    Africa  1997    46.809  11404948    792.449960  ZWE     716
1702    Zimbabwe    Africa  2002    39.989  11926563    672.038623  ZWE     716
1703    Zimbabwe    Africa  2007    43.487  12311143    469.709298  ZWE     716

看着这些数字,我们需要将这些数据可视化,以便有人能够快速解释和理解这些数据。这也是一种美学上的享受。因此,让我们使用交互式动画来创建数据可视化,以帮助我们将这些数据可视化。

px.scatter(data_frame=gapminder_df,
            x = 'gdpPercap',
            y = 'lifeExp',
            size = 'pop',
            color = 'continent',
            title = 'Life Span and Wealth 1952 - 2007',
            labels = { 'gdpPercap': 'Wealth',
                        'lifeExp': 'Life Span'}, 
            log_x = True,
            range_y = [25,95],
            hover_name = 'country',
            animation_frame = 'year',
            height = 600,
            size_max = 100)

解释一下这个代码块。

  • x = 'gdpPercap' 和 告诉我们希望我们的 和 的坐标是什么。X轴将代表gdpPercap,它被分配到标签 ,而Y轴将代表分配到标签 的预期寿命。y = 'lifeExp' x y Wealth Life Span
  • color = 'continent', 告诉plotly,我们希望每个大洲有不同的颜色。
  • title = 'Life Span and Wealth 1952 - 2007', 是我们可视化的标题。你可以把它改成任何最适合你的标题。
  • log_x = True, 将X轴上的刻度转换为对数刻度,因为它的分布是相当宽的。
  • range_y = [25,95], 将Y轴上的范围限制在25到95年之间。
  • hover_name = 'country', 告诉我们,当我们把鼠标悬停在圆圈上时,我们希望它能告诉我们它代表哪个国家。
  • height = 600, 告诉plotly将绘图的大小调整为600px, ,将每个点的大小调整为100px。size_max = 100

现在,让我们看看我们运行代码时的输出。

Output

上面的图片显示了1952年的财富分布情况。

Output

上面的图片显示了从1952年到2007年的财富分布情况。最初,非洲和亚洲的人口是世界上财富最少的。渐渐地,更多的亚洲人获得了财富,并跃居非洲人之上。

结果还显示,到2007年,大部分的财富都集中在欧洲人、大洋洲人和美国人身上。你可以用你的鼠标光标放大和缩小,查看图上的各个点。按下播放按钮,可以看到1952-2007年的分布情况如何转变。

我们使用互动动画来帮助我们实现目标。还有许多其他的方式,你可以使用plotly进行可视化。这可能是使用线图、柱状图、饼图、交互式气泡图和choropleth。在这里探索更多的技术。

使用相同的数据集,让我们使用choropleth绘制。

px.choropleth(data_frame=gapminder_df,
             locations='iso_alpha', 
             color='gdpPercap', 
             title = 'Life Span and Wealth (1952 - 2007) using cloropleth',
             hover_name='country', 
             animation_frame='year', 
             height = 600,
             color_continuous_scale=px.colors.sequential.Plasma, 
             projection='natural earth')

Plotting using choropleth (1952)

该图显示了1952年的财富分布,使用了投射在自然地球上的轮状图。

Plotting using choropleth (2007)

我们看到2007年的财富分布,使用的是投射在自然地球上的正方形图。

Choropleth地图最适合在你只处理一个变量时使用。例如,两个变量之间的差异(例如,从去年到今年的失业率变化)。

但是,如果你想显示不止一个变量的数值之间的相关性,脉络图可能不是你的最佳选择。可以考虑使用散点图来代替。

在这里找到本教程的所有代码,看看从1952年到2007年各大洲的财富分布情况如何比较。

收尾工作

只需几行代码,你就可以在Python中使用plotly绘制数据。我向你挑战,找一些数据集来试试。享受以一种有趣的、有影响力的方式将你的数据可视化。

编码愉快!

参考资料


同行评议的贡献者。柯林斯-阿尤亚

类似文章

[

Probability Distributions and their Simulations in R Hero Image

机器学习

多类标签的概率预测指南

阅读更多

](www.section.io/engineering…

Kernel PCA in Python example image

机器学习

掌握Python中的内核PCA的入门知识

阅读更多

](www.section.io/engineering…

Garbage collection in c# dotnet framework image

机器学习, 语言

使用高斯消除算法的线性方程组

阅读更多

](www.section.io/engineering…)