使用 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得到了这个想法。