Plotly:如何为每个不同的子图应用不同的标题?
Plotly: How to apply different titles for each different subplots?
鉴于我有来自 this link 的以下代码:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=2)
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.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
此代码中的问题是,xaxis
和 yaxis
没有任何标签。除此之外,当前代码只对所有图应用一个标题,但是我想对每个散点图应用不同的 titles。
我该怎么做?
从 Plotly 4.0.0 开始,您可以分别将主轴标题添加为 x_title y_title:
from plotly.subplots import make_subplots
fig = make_subplots(rows=2,
cols=2,
x_title='Your master x-title',
y_title='Your master y-title',
subplot_titles=('Subplot title1', 'Subplot title2',
'Subplot title3', 'Subplot title4'))
The problem in this code is, the xaxis and yaxis does not have any label.
您可以通过子图结构来编辑任何轴:
fig['layout']['xaxis']['title']='Label x-axis 1'
Beside this, the current code applies only one title to all the plots
根据用户 shaik moeed 提到的情节版本,您可以在图形定义中包含 subplot_titles
:
fig = make_subplots(rows=1, cols=2, subplot_titles=('Subplot title1', 'Subplot title2'))
剧情:
代码:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
# plotly fig setup
fig = make_subplots(rows=1,
cols=2,
subplot_titles=('Subplot title1', 'Subplot title2'))
# 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
)
# edit axis labels
fig['layout']['xaxis']['title']='Label x-axis 1'
fig['layout']['xaxis2']['title']='Label x-axis 2'
fig['layout']['yaxis']['title']='Label y-axis 1'
fig['layout']['yaxis2']['title']='Label y-axis 2'
# plot it
fig.show()
from plotly.subplots import make_subplots
import plotly.graph_objects as go
# plotly fig setup
fig = make_subplots(rows=1,
cols=2,vertical_spacing=0.09,
subplot_titles=('Subplot title1', 'Subplot title2'))
# 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=time_list, y=C_hl0),
# row=1, col=1)
fig.update_layout(height=1600, width=1000,
title_text="Whatever you want")
for i in range(1,5):
fig['layout']['xaxis{}'.format(i)]['title']='Label X axis 1'
fig['layout']['yaxis{}'.format(i)]['title']='Label X axis 2'
fig.show()
#If you want to save your plot into your local directory
import plotly.io as pio
pio.kaleido.scope.default_format = "png"
fig.write_image(r"C:\fig1.png")
鉴于我有来自 this link 的以下代码:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=2)
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.update_layout(height=600, width=800, title_text="Subplots")
fig.show()
此代码中的问题是,xaxis
和 yaxis
没有任何标签。除此之外,当前代码只对所有图应用一个标题,但是我想对每个散点图应用不同的 titles。
我该怎么做?
从 Plotly 4.0.0 开始,您可以分别将主轴标题添加为 x_title y_title:
from plotly.subplots import make_subplots
fig = make_subplots(rows=2,
cols=2,
x_title='Your master x-title',
y_title='Your master y-title',
subplot_titles=('Subplot title1', 'Subplot title2',
'Subplot title3', 'Subplot title4'))
The problem in this code is, the xaxis and yaxis does not have any label.
您可以通过子图结构来编辑任何轴:
fig['layout']['xaxis']['title']='Label x-axis 1'
Beside this, the current code applies only one title to all the plots
根据用户 shaik moeed 提到的情节版本,您可以在图形定义中包含 subplot_titles
:
fig = make_subplots(rows=1, cols=2, subplot_titles=('Subplot title1', 'Subplot title2'))
剧情:
代码:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
# plotly fig setup
fig = make_subplots(rows=1,
cols=2,
subplot_titles=('Subplot title1', 'Subplot title2'))
# 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
)
# edit axis labels
fig['layout']['xaxis']['title']='Label x-axis 1'
fig['layout']['xaxis2']['title']='Label x-axis 2'
fig['layout']['yaxis']['title']='Label y-axis 1'
fig['layout']['yaxis2']['title']='Label y-axis 2'
# plot it
fig.show()
from plotly.subplots import make_subplots
import plotly.graph_objects as go
# plotly fig setup
fig = make_subplots(rows=1,
cols=2,vertical_spacing=0.09,
subplot_titles=('Subplot title1', 'Subplot title2'))
# 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=time_list, y=C_hl0),
# row=1, col=1)
fig.update_layout(height=1600, width=1000,
title_text="Whatever you want")
for i in range(1,5):
fig['layout']['xaxis{}'.format(i)]['title']='Label X axis 1'
fig['layout']['yaxis{}'.format(i)]['title']='Label X axis 2'
fig.show()
#If you want to save your plot into your local directory
import plotly.io as pio
pio.kaleido.scope.default_format = "png"
fig.write_image(r"C:\fig1.png")