设置:
- 我特灵用
plotly
库绘制子图,但不知道如何引用特定的子图轴来更改其名称(或其他属性)。 - 在
Code 1
中,我展示了一个简单的例子,其中我用plotly.subplots.make_subplots
将两个图一个加在另一个上。
代码1
import numpy as np
from plotly.subplots import make_subplots
from math import exp
fig = make_subplots(2, 1)
x = np.linspace(0, 10, 1000)
y = np.array(list(map(lambda x: 1 / (1 + exp(-0.1 * x + 5)), x)))
fig.add_trace(
go.Scatter(
x=x,
y=y,
name=f'\N{Greek Small Letter Sigma}(x)',
showlegend=True
),
row=1,
col=1
)
x = np.where(np.random.randint(0, 2, 100)==1)[0]
fig.add_trace(
go.Scatter(
x=x,
y=np.zeros_like(x),
name=f'Plot 2',
mode='markers',
marker=dict(
symbol='circle-open',
color='green',
size=5
),
showlegend=True
),
row=2,
col=1
)
fig.show()
我所尝试的
我曾尝试在每次添加跟踪后使用fig.update_xaxes()
,但它会使绘图变得混乱,并且不会产生所需的输出,如Code 2
所示。
代码二:
import numpy as np
from plotly.subplots import make_subplots
from math import exp
fig = make_subplots(2, 1)
x = np.linspace(0, 10, 1000)
y = np.array(list(map(lambda x: 1 / (1 + exp(-0.1 * x + 5)), x)))
fig.add_trace(
go.Scatter(
x=x,
y=y,
name=f'\N{Greek Small Letter Sigma}(x)',
showlegend=True
),
row=1,
col=1
)
fig.update_xaxes(title_text='x')
x = np.where(np.random.randint(0, 2, 100)==1)[0]
fig.add_trace(
go.Scatter(
x=x,
y=np.zeros_like(x),
name=f'Plot 2',
mode='markers',
marker=dict(
symbol='circle-open',
color='green',
size=5
),
showlegend=True
),
row=2,
col=1
)
fig.update_xaxes(title_text='active users')
fig.show()
这导致(注意,active users
被打印在顶部):
我的问题:
1.如何将顶部图的x轴标签x
和active users
标签分配给底部图的x轴?
1.在一般情况下-我如何访问一个单独的子情节的属性?
2条答案
按热度按时间cczfrluj1#
在this answer的帮助下,我能够解决它,通过引用
xaxis
用于绘制位置row=1
,col=1
和xaxis1
用于绘制row=2
,col=1
位置。完整的解决方案在Code 1
中。代码1:
干杯
eoxn13cs2#
如果不确定
xaxis#
的ID是什么,也可以使用.select_xaxes()
通过轴的col
和row
在网格中寻址轴。如果您以非顺序方式遍历网格,或者具有多个轴或不同类型(例如,你混合了
pie
和scatter
类型)。我已经单独渲染了所有必要的轨迹,然后填充一个空的小平面5×5网格,如下所示:
如果您已经预先格式化了从
rendered_subplots
中提取的每个子图中的轴,则可以进一步操作并以这种方式移植轴属性: