Python - Plotly - make_subplots -标题重叠/移动子图标题

irlmq6kh  于 2023-03-21  发布在  Python
关注(0)|答案(1)|浏览(184)

如何调整子图标题,使其不与x轴重叠?

下面是代码供参考:

import math
import pandas as pd
import plotly.subplots as ps
import plotly.graph_objects as go

# create subplots
x_axis_groups = df.groupby("x_axis_group")
fig = ps.make_subplots(
    rows=math.ceil(len(list(x_axis_groups)) / 3),
    cols=3,
    subplot_titles=[name for name, _ in x_axis_groups],
    horizontal_spacing=0.025,
    vertical_spacing=0.1,
)
for i, (_, group) in enumerate(x_axis_groups):
    subfig = go.Heatmap(x=group["x-axis"], y=group["y-axis"], z=group['z'])
    fig.append_trace(subfig, row=i//3+1, col=i%3+1)
fig.update_layout(
    showlegend=False,
    title_text='Total PF reads per plate',
    font=dict(size=18),
    xaxis=dict(range=[1, 12], side="top", dtick=1),
    yaxis=dict(autorange="reversed")
)
aelbi1ox

aelbi1ox1#

有一个注解定义了每个子图标题的位置,因此请更改它:从fig.layout中的信息可以看到yaxis['domain']的值,并调整它以适合您的图形。此外,垂直间距太小,因此增加值。我在我的环境中创建了一个类似于您的图形,并调整了以下设置

fig = make_subplots.make_subplots(
    rows=2,
    cols=3,
    subplot_titles=['7','8','9','10','11','12'],
    horizontal_spacing=0.025,
    vertical_spacing=0.2,
)
...

fig.layout.annotations[0].update(y=1.1)
fig.layout.annotations[1].update(y=1.1)
fig.layout.annotations[2].update(y=1.1)
fig.layout.annotations[3].update(y=0.5)
fig.layout.annotations[4].update(y=0.5)
fig.layout.annotations[5].update(y=0.5)

相关问题