使用Plotly绘制常见5种动态交互式图表

1. 简介

Plotly 是一个基于网页端的交互式数据可视化工具,可实现高效而美观的网页交互式可视化呈现。Plotly 其主要特点是简单易用、支持多种语言,而且绘制出来的图形可以高度交互化,这对于数据分析人员、数据可视化爱好者等具有重要的价值。

本文将介绍如何使用 Plotly 绘制常见的五种动态交互式图表:

散点图

饼图

直方图

折线图

箱型图

2. 环境要求

在进行本文的实验前,请确保已经安装了 Plotly 和相关的 Python 库。

pip install plotly==5.1.0

pip install pandas==1.3.3

pip install numpy==1.21.2

3. 绘制散点图

3.1 数据准备

我们需要准备一些随机数据,并对应一些标签。例如,我们有 100 个数据点,每个数据点有两个属性,以及表示这个数据点是哪个类别的标签。

import pandas as pd

import numpy as np

np.random.seed(42)

data = pd.DataFrame(dict(

x=np.random.randn(100)*2+1,

y=np.random.randn(100)+0,

label=np.random.choice(['A', 'B', 'C'], 100)

))

3.2 绘图过程

我们使用 Plotly 中的 scatter() 函数来绘制散点图。散点图通常用于表示两个变量之间的关系。我们可以通过选择不同的颜色来表示每个数据点的不同类别。

import plotly.express as px

fig = px.scatter(data, x="x", y="y", color="label",

title="散点图")

fig.show()

3.3 效果展示

运行上述代码,我们可以得到以下散点图。

在 Plotly 中,你可以通过鼠标滚轮来缩放图像;通过拖动图像来平移图像;通过鼠标悬停在数据点上来查看数据点的详细信息。

4. 绘制饼图

4.1 数据准备

我们需要准备一些数据来表示饼图的切片大小。例如,我们有四个不同的类别和对应的数量。

data = pd.DataFrame(dict(

labels=['A', 'B', 'C', 'D'],

values=[10, 20, 30, 40]

))

4.2 绘图过程

我们使用 Plotly 中的 pie() 函数来绘制饼图。饼图通常用于表示数据的相对数量占比。

fig = px.pie(data, values='values', names='labels',

title='饼图')

fig.show()

4.3 效果展示

运行上述代码,我们可以得到以下饼图。

在 Plotly 中,你可以通过鼠标悬停在饼图上来查看饼图节点的详细信息;通过单击饼图节点来突出饼图的某一部分。

5. 绘制直方图

5.1 数据准备

我们需要准备一些随机数据,用于绘制直方图。例如,我们有 1000 个正态分布的数据。

data = pd.DataFrame(dict(

x=np.random.randn(1000)

))

5.2 绘图过程

我们使用 Plotly 中的 histogram() 函数来绘制直方图。直方图通常用于表示数据在不同区间内的出现次数。

fig = px.histogram(data, x='x', nbins=20,

title='直方图')

fig.show()

5.3 效果展示

运行上述代码,我们可以得到以下直方图。

在 Plotly 中,你可以通过鼠标滚轮来缩放图像;通过拖动图像来平移图像;通过鼠标悬停在数据点上来查看数据点的详细信息。

6. 绘制折线图

6.1 数据准备

我们需要准备一些数据,用于绘制折线图。例如,我们有两条正弦曲线。

data = pd.DataFrame(dict(

x=np.linspace(0, 10, 100),

y1=np.sin(np.linspace(0, 10, 100)),

y2=np.sin(np.linspace(0, 10, 100)+np.pi/2)

))

6.2 绘图过程

我们使用 Plotly 中的 line() 函数来绘制折线图。折线图通常用于表示数据随着时间、数据组或其他顺序变化的情况。

fig = px.line(data, x='x', y=['y1', 'y2'],

title='折线图')

fig.show()

6.3 效果展示

运行上述代码,我们可以得到以下折线图。

在 Plotly 中,你可以通过鼠标滚轮来缩放图像;通过拖动图像来平移图像;通过鼠标悬停在数据点上来查看数据点的详细信息。

7. 绘制箱型图

7.1 数据准备

我们需要准备一些数据,用于绘制箱型图。例如,我们有三个不同类别的数据,每个类别有 100 个随机数。

data = pd.DataFrame(dict(

A=np.random.randn(100),

B=np.random.randn(100)+2,

C=np.random.randn(100)+4

))

7.2 绘图过程

我们使用 Plotly 中的 box() 函数来绘制箱型图。箱型图通常用于表示数据的中位数、四分位数、极差等统计指标。

fig = px.box(data.melt(var_name='类别', value_name='值'),

x='类别', y='值',

title='箱型图')

fig.show()

7.3 效果展示

运行上述代码,我们可以得到以下箱型图。

在 Plotly 中,你可以通过鼠标滚轮来缩放图像;通过拖动图像来平移图像;通过鼠标悬停在数据点上来查看数据点的详细信息。

8. 总结

以上就是使用 Plotly 绘制常见的五种动态交互式图表的方法。Plotly 具有交互性强、作图美观、易于使用等优点,是数据可视化领域不可或缺的工具之一。希望本文能够帮助那些有数据可视化需求的读者更好地了解 Plotly 的使用方法。

后端开发标签