PythonPlotly-複数のYAXISLegendsレイアウト[複製]

Jan 18 2021

以下のコードを使用して、同じ図に2つのオーバーレイグラフ、1つの棒グラフと1つの線トレンドを作成しようとしています。

data = []

for __brand in df_cumsum['brand'].unique():

    data.append(go.Scatter(
        x=df_cumsum.loc[df_cumsum['brand'] == __brand, :]['day'],
        y=df_cumsum.loc[df_cumsum['brand'] == __brand, :]['ecpm_cum'],
        name=__brand,
        yaxis='y1'
    ))

    data.append(go.Bar(
        x=df_cumsum.loc[df_cumsum['brand'] == __brand, :]['day'],
        y=df_cumsum.loc[df_cumsum['brand'] == __brand, :]['impressions_cum'],
        name=__brand,
        yaxis='y2',
        opacity=0.3
    ))

figure = {'data': data,
          'layout': {'title': 'Delivery Performance Over Test Period (Days)',
                     'yaxis': {'title': 'Cumulative eCPM (USD)'},
                     'yaxis2': {'title': 'Cumulative Delivery (Impressions)', 'side': 'right', 'overlaying': 'y'}}}

その結果、上記のように、左のy軸と右のy軸の両方の凡例が混在しています。

誰かが私がそれぞれを適切な側に置く方法を知っていますか?左側の左y軸の凡例と右側の右y軸の凡例?前もって感謝します !

回答

DerekO Jan 18 2021 at 16:31

残念ながら、Plotlyは複数の凡例をサポートしていません。これは未解決の問題です。

現在の1つの凡例から左側の凡例項目を非表示にしてから、線の傾向変数名のテキストを含む長方形の注釈ボックスを使用して、左側の凡例を最初から作成できます。ただし、その場合、凡例には実際には切り替え機能がなく、変数名を表示するためのボックスとしてのみ機能します。