亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用自定義繪圖標題時,“plotly.subplots”中的注釋會中斷

使用自定義繪圖標題時,“plotly.subplots”中的注釋會中斷

慕哥9229398 2023-06-20 16:05:04
我有一個奇怪的問題 - 不確定這是一個錯誤還是我遺漏了什么。當繪制子圖并Code 1為每個子圖分配自定義標題時 - 我稍后嘗試添加到底部圖的注釋沒有完全顯示,但只顯示最后兩個 ( Output Plot 1)。代碼 1:import 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', 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另一方面,如果我刪除自定義繪圖標簽 - 一切都按預期工作,如Code 2和輸出所示Image 2。
查看完整描述

1 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

我不確定這是否是由于字幕設置引起的,但是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, 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()

http://img1.sycdn.imooc.com//64915df80001610206270332.jpg

查看完整回答
反對 回復 2023-06-20
  • 1 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號