使用自定义绘图标题时,“plotly.subplots”中的注释会中断

我有一个奇怪的问题 - 不确定这是一个错误还是我遗漏了什么。

  • 当绘制子图并Code 1为每个子图分配自定义标题时 - 我稍后尝试添加到底部图的注释没有完全显示,但只显示最后两个 ( Output Plot 1)。

代码 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, xref='x2', yref='y2', text='Model', font=dict(size=10, color='blue')),

    dict(x=0, y=2.125, xref='x2', yref='y2', text='ALO', font=dict(size=10, color='red')),

    dict(x=0, y=3.125, xref='x2', yref='y2', text='RND', font=dict(size=10, color='black')),

    ]

)

fig.show()

输出图 1

http://img2.mukewang.com/64915ddd00014b4f06370349.jpg

另一方面,如果我删除自定义绘图标签 - 一切都按预期工作,如Code 2和输出所示Image 2




慕哥9229398
浏览 110回答 1
1回答

蝴蝶不菲

我不确定这是否是由于字幕设置引起的,但是add_annotation()是正确的,update(annotations=[]可能已被函数覆盖以更新已设置的注释。import plotly.graph_objects as goimport numpy as npfrom plotly.subplots import make_subplotsfrom math import expfig = 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, xref='x2', yref='y2', text='ALO', showarrow=True, font=dict(size=10, color='red')))fig.add_annotation(    dict(x=0, y=1.125, xref='x2', yref='y2', text='Model', showarrow=True, font=dict(size=10, color='Blue')))fig.add_annotation(    dict(x=0, y=0.125, xref='x2', yref='y2', text='True activity', showarrow=True, font=dict(size=10, color='green')))fig.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python