在绘图中创建后如何更改子图标题?

ban*_*013 11 python plotly

使用 matplotlib 我可以这样做:

import numpy as np
import matplotlib.pyplot as plt

fig, axs = plt.subplots(1, 2, figsize=(10, 5))
fig.patch.set_facecolor('white')

axs[0].bar(x=[0,1,2], height=[1,2,3])
axs[1].plot(np.random.randint(1, 10, 50))

axs[0].set_title('BARPLOT')
axs[1].set_title('WOLOLO')

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

对于plotly,我只知道一种设置子图标题的方法——在创建时: fig = make_subplots(rows=1, cols=2, subplot_titles=('title1', 'title2'))

创建后是否可以设置子图标题?
也许,通过访问Axesmatplotlib 的原始类(我读到基于seaborn的plotly.python,它基于matplotlib)?
还是通过fig.layout

请使用此代码:

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

fig = make_subplots(rows=1, cols=2)
fig.add_trace(go.Bar(y=[1, 2, 3]), row=1, col=1)
fig.add_trace(go.Scatter(y=np.random.randint(1, 10, 50)), row=1, col=2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Gab*_*ino 16

下面的代码可以达到你想要的效果。

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

fig = make_subplots(rows=1, cols=2, subplot_titles=("Plot 1", "Plot 2"))
fig.add_trace(go.Bar(y=[1, 2, 3]), row=1, col=1)
fig.add_trace(go.Scatter(y=np.random.randint(1, 10, 50)), row=1, col=2)

fig.layout.annotations[1].update(text="Stackoverflow")

fig.show()
Run Code Online (Sandbox Code Playgroud)

当它描述如何访问每个图的注释时,我从https://community.plotly.com/t/subplot-title-alignment/33210/2得到了这个想法。

  • 因此,基本上,我们需要将初始字幕指定为占位符,然后我们就能够迭代并更改它们。谢谢! (2认同)