如何解决使用自定义绘图标题时,`plotly.subplots`中的注释会中断
我有一个奇怪的问题-不知道这是一个错误还是我错过了什么。
- 在用
Code 1
绘制子图并为每个子图分配自定义标题时,我稍后尝试添加到底部图的注释不会完全显示,而仅显示最后两个(Output Plot 1
)。 / li>
代码1:
import numpy as np
from plotly.subplots import make_subplots
from math import exp
fig = make_subplots(2,1,subplot_titles=['Activation','Prediction errors - Model,ALO and RND'])
x = np.linspace(0,10,100)
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['layout']['xaxis'].update(title_text='x')
for i in range(4):
x = np.where(np.random.randint(0,2,100)==1)[0]
fig.add_trace(
go.Scatter(
x=x,y=np.zeros_like(x) + i,name=f'Plot {i}',mode='markers',marker=dict(
symbol='circle-open',color='green',size=5
),showlegend=True
),row=2,col=1
)
fig['layout']['xaxis2'].update(title_text='active users',range=[0,10],autorange=True)
fig['layout']['yaxis2'].update(title_text='active users',visible=False,autorange=True)
fig['layout'].update(
annotations=[
dict(x=0,y=0.125,xref='x2',yref='y2',text='True activity',font=dict(size=10,color='green')),dict(x=0,y=1.125,text='Model',color='blue')),y=2.125,text='ALO',color='red')),y=3.125,text='RND',color='black')),]
)
fig.show()
输出图1
另一方面,如果我删除了自定义图标签-一切按预期进行,如Code 2
所示并输出Image 2
。
代码2:
import numpy as np
from plotly.subplots import make_subplots
from math import exp
fig = make_subplots(2,1)#,ALO and RND']) # <= note the change here
x = np.linspace(0,]
)
fig.show()
输出图2
预先感谢您对此行为的详细说明。
解决方法
我不确定这是否是由于字幕的设置引起的,但是add_annotation()
是正确的,
update(annotations=[]
可能已被该函数覆盖,以更新已设置的注释。
import plotly.graph_objects as go
import numpy as np
from plotly.subplots import make_subplots
from math import exp
fig = make_subplots(2,1,subplot_titles=('Activation','Prediction errors - Model,ALO and RND'))
x = np.linspace(0,10,100)
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['layout']['xaxis'].update(title_text='x')
for i in range(4):
x = np.where(np.random.randint(0,2,100)==1)[0]
fig.add_trace(
go.Scatter(
x=x,y=np.zeros_like(x) + i,name=f'Plot {i}',mode='markers',marker=dict(
symbol='circle-open',color='green',size=5
),showlegend=True
),row=2,col=1
)
fig['layout']['xaxis2'].update(title_text='active users',autorange=True)
fig['layout']['yaxis2'].update(title_text='active users',visible=True,range=[-1,4])
fig.add_annotation(
dict(x=0,y=3.125,xref='x2',yref='y2',text='RND',showarrow=True,font=dict(size=10,color='black'))
)
fig.add_annotation(
dict(x=0,y=2.125,text='ALO',color='red'))
)
fig.add_annotation(
dict(x=0,y=1.125,text='Model',color='Blue'))
)
fig.add_annotation(
dict(x=0,y=0.125,text='True activity',color='green'))
)
fig.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。