#python #python-3.x #plotly #plotly-python
#python #python-3.x #plotly #plotly-python
Вопрос:
Я создал подзаголовок, и, честно говоря, в документах plotly неясно, как сделать эти заголовки больше.
https://plotly.com/python-api-reference/generated/plotly.subplots.make_subplots.html
Вот документ для справки, в котором говорится о настройке заголовка x_axis и заголовка y_axis. Что я и сделал, но, похоже, не могу найти способ его изменить.
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, но она не работает.
Заголовки по оси «Идентификатор местоположения» и «Расстояние» -> Я хочу, чтобы они были больше и, возможно, изменили цвет. Есть ли способ добиться этого, которого мне просто не хватает?
Вот картинка для справки
Ответ №1:
Ответ:
Вы можете использовать:
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)))
…превратит это:
… в это:
Полный код:
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()