Сюжет: как увеличить заголовки по осям x и y для сюжетов?

Я создал подсюжет, и, честно говоря, в сюжетных документах неясно, как сделать эти заголовки больше.

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, но не работает.

Идентификатор остатка и заголовки оси расстояния -> я хочу, чтобы они были больше и, возможно, изменили цвет. Есть ли способ сделать это, что мне просто не хватает?

Вот картинка для справки

введите здесь описание изображения


person Suliman Sharif    schedule 16.09.2020    source источник


Ответы (1)


Ответ:

Ты можешь использовать:

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

Некоторые детали:

Основываясь на примере подзаговора в сюжетных документах, следующий фрагмент...

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)))

... превратит это:

введите здесь описание изображения

... в это:

введите здесь описание изображения

Полный код:

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()
person vestland    schedule 28.09.2020