如何在Python的Plotly中为每个子图应用不同的标题?

如何在Python的Plotly中为每个子图应用不同的标题?

简介

图表可视化Python库Plotly提供了子图创建作为数据可视化的一种工具。将大量的叙述拆分成多个较小的剧情可以使用子图。有时,为了增加主要叙述的深度和连贯性,必须为每个子图赋予其独特的标题。

语法

通过使用subplot_titles参数,我们可以在网格绘图中定制子图标题,从而为每个图形创建一个独特的标题。make_subplots()函数本质上是一个工厂方法,它允许我们建立一个具有指定行数和列数的绘图网格。让我们深入了解一些我们可以通过make_subplots()操作的关键参数−

  • rows − 此参数指定绘图网格中的行数。

  • cols − 此参数指定绘图网格中的列数。

  • specs − 由数组组成的数组,用于标记网格中每个子图的类型。 specs数组中的每个元素应包括两个值:子图跨越的行数和列数及子图类型。

  • subplot_titles − 由字符串组成的数组,用于说明网格中每个子图的标题。此数组的大小应等于网格中的子图数量。

在下面的代码中,我们将采用以下方式为每个子图赋予独特的标题−

fig = make_subplots(rows=1, cols=3, subplot_titles=("Subplot 1", "Subplot 2", "Subplot 3"))

举例

在编写实际代码之前,请先了解其算法。

  • 导入必要的模块− plotly.graph_objs和plotly.subplots,以及 numpy

  • 使用numpy创建一些要绘制的数据。

  • 使用make_subplots函数创建具有1行和3列的子图网格。通过传递subplot_titles参数来为每个子图赋予独特的标题。

  • 使用add_trace方法向每个子图添加跟踪。对于每个子图,传递一个包含要绘制的数据的go.Scatter对象和一个name参数来标记数据。

  • 使用update_layout方法为整个绘图指定标题。

  • 使用update_xaxes和update_yaxes方法为每个子图的x轴和y轴指定独特标题。

  • 使用show方法显示绘图。

import plotly.graph_objs as go
from plotly.subplots import make_subplots
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# 创建子图
fig = make_subplots(rows=1, cols=3, subplot_titles=("Sin(x)", "Cos(x)",
"Tan(x)"))

# 添加跟踪
fig.add_trace(go.Scatter(x=x, y=y1, name='Sin(x)'), row=1, col=1)
fig.add_trace(go.Scatter(x=x, y=y2, name='Cos(x)'), row=1, col=2)
fig.add_trace(go.Scatter(x=x, y=y3, name='Tan(x)'), row=1, col=3)

# 为每个子图分配唯一的标题
fig.update_layout(title_text="三角函数")
fig.update_xaxes(title_text="Sin波的X轴", row=1, col=1)
fig.update_xaxes(title_text="Cos波的X轴", row=1, col=2)
fig.update_xaxes(title_text="Tan波的X轴", row=1, col=3)
fig.update_yaxes(title_text="Sin波的Y轴", row=1, col=1)
fig.update_yaxes(title_text="Cos波的Y轴", row=1, col=2)
fig.update_yaxes(title_text="Tan波的Y轴", row=1, col=3)

# 显示绘图
fig.show()

如何在Python的Plotly中为每个子图应用不同的标题?

  • 首先导入plotly.graph和plotly.subplots作为所需的库。为了创建示例数据,我们还导入了numpy库。

  • 然后使用numpy库创建了一些示例数据。通过数组x的sin,cos和tan函数,我们生成了三个数组y1,y2和y3来表示它们。使用make subplots()方法,我们接下来生成了一个由一行三列组成的子图网格。

  • subplot标题选项还附带了一个包含三个字符串值“Sin(x)”,“Cos(x)”和“Tan(x)”的数组。每个网格子图表的标题都由此确定。

  • 在创建子图网格后,使用add trace()函数为每个子图添加一个跟踪。对于三个y1,y2和y3数组,分别添加一个Scattertrace。对于这三个跟踪,我们还将名称参数分别设置为“Sin(x)”,“Cos(x)”和“Tan(x)”。通过利用add trace()方法的行和列参数,我们可以为每个跟踪定义子图。

  • 使用update layout()方法将图的通用标题更改为“三角函数”。

  • 现在使用update xaxes()和update yaxes()方法为每个子图设置x轴和y轴标题,以为每个子图赋予特殊标题。为了指示我们要更新的子图,我们提供了行和列参数。我们还通过传递标题文本参数来设置x轴或y轴的标题。

  • 最后使用show()方法显示图表。

结论

Plotly的make subplots()函数提供了一个实用的方法来制作子图网格。使用子图标题参数,网格中的每个子图都可以有不同的标题。此外,update xaxes()和update yaxes()例程允许我们为每个子图更改x和y轴的名称。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程