情节:如何使子地块的x轴和y轴标题变大?

2024-04-20 03:26:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个子地块,老实说,在plotly文档中不清楚如何使这些标题更大

https://plotly.com/python-api-reference/generated/plotly.subplots.make_subplots.html

这是供参考的文档,他们讨论了设置x_轴标题和y_轴标题。我确实这么做了,但我似乎找不到修改的方法


fig = make_subplots(
    rows=6, cols=4,
    subplot_titles=subplot_titles,
    y_title='Distance (Å)',
    x_title='Resid ID'
)

positions = [
                [1, 1], [1, 2], [1, 3], [1, 4],
                [2, 1], [2, 2], [2, 3], [2, 4],
                [3, 1], [3, 2], [3, 3], [3, 4],
                [4, 1], [4, 2], [4, 3], [4, 4],
                [5, 1], [5, 2], [5, 3], [5, 4],
                [6, 1], [6, 2], [6, 3], [6, 4],
            ]


for i in range(0, len(segids)):
    
    fig.add_trace(
        go.Scattergl(
            x=resid_titles,
            y=list(copy[segids[i]].values()),
            line=dict(color=colors[0]),
            
        ),
        
        
        row=int(positions[i][0]), 
        col=int(positions[i][1])
    )
    

# Set title
fig.update_layout(title_text="Average O5-O3 Distance Per Resid Per Chain")

fig.update_layout(
    title_font_family="Arial",
    title_font_color="Black",
    title_font=dict(size=44, family='Courier'),

)

# Remove the Legend
fig.update_layout(showlegend=False)

fig.update_xaxes(
                 ticks="outside",
                 tickwidth=2,
                 tickcolor='black',
                 tickfont=dict(family='Arial', color='black', size=22),
                 title_font=dict(size=44, family='Arial'),
                 range=[1, 9],
)

fig.update_yaxes(
                 ticks="outside", 
                 tickwidth=2,
                 tickcolor='black', 
                 tickfont=dict(family='Arial', color='black', size=22),
                 title_font=dict(size=44, family='Arial'),
                 range=[2, 5]
)

我试过使用他们的update_xaxes功能,但没有用

“剩余ID”和“距离”轴标题->;我想要大一点的,也许可以改变颜色。有没有一种方法可以实现这一点,我只是错过了

这里有一张图片供参考

enter image description here


Tags: 标题sizetitlefigupdateplotlyfamilydict
1条回答
网友
1楼 · 发布于 2024-04-20 03:26:28

答案是:

您可以使用:

fig.for_each_xaxis(lambda axis: axis.title.update(font=dict(color = 'blue', size=20)))

一些细节:

基于plotly文档中的子地块示例,以下代码段

fig.for_each_xaxis(lambda axis: axis.title.update(font=dict(size=24)))
fig.for_each_yaxis(lambda axis: axis.title.update(font=dict(size=24)))

…将扭转这一局面:

enter image description here

。。。为此:

enter image description here

完整代码:

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

# Initialize figure with subplots
fig = make_subplots(
    rows=2, cols=2, subplot_titles=("Plot 1", "Plot 2", "Plot 3", "Plot 4")
)

# Add traces
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[4, 5, 6]), row=1, col=1)
fig.add_trace(go.Scatter(x=[20, 30, 40], y=[50, 60, 70]), row=1, col=2)
fig.add_trace(go.Scatter(x=[300, 400, 500], y=[600, 700, 800]), row=2, col=1)
fig.add_trace(go.Scatter(x=[4000, 5000, 6000], y=[7000, 8000, 9000]), row=2, col=2)

# Update xaxis properties
fig.update_xaxes(title_text="xaxis 1 title", row=1, col=1)
fig.update_xaxes(title_text="xaxis 2 title", range=[10, 50], row=1, col=2)
fig.update_xaxes(title_text="xaxis 3 title", showgrid=False, row=2, col=1)
fig.update_xaxes(title_text="xaxis 4 title", type="log", row=2, col=2)

# Update yaxis properties
fig.update_yaxes(title_text="yaxis 1 title", row=1, col=1)
fig.update_yaxes(title_text="yaxis 2 title", range=[40, 80], row=1, col=2)
fig.update_yaxes(title_text="yaxis 3 title", showgrid=False, row=2, col=1)
fig.update_yaxes(title_text="yaxis 4 title", row=2, col=2)

# Update title and height
fig.update_layout(title_text="Customizing Subplot Axes", height=700)

# change subplot axes font size
fig.for_each_xaxis(lambda axis: axis.title.update(font=dict(color = 'blue', size=20)))
fig.for_each_yaxis(lambda axis: axis.title.update(font=dict(color = 'blue', size=20)))

fig.show()

相关问题 更多 >