Python Plotly - Beberapa Tata Letak YAXIS Legends [duplikat]

Jan 18 2021

Saya mencoba membuat 2 grafik overlay pada gambar yang sama, satu diagram batang dan tren satu garis dengan kode di bawah ini:

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'}}}

Hasilnya, saya memiliki sesuatu seperti di atas di mana kedua legenda untuk yaksis kiri dan yaksis kanan bercampur menjadi satu.

Adakah yang tahu bagaimana saya bisa menempatkan masing-masing di sisi yang relevan? Legenda untuk yaksis kiri di sebelah kiri dan legenda untuk yaxis kanan di sebelah kanan? Terima kasih sebelumnya !

Jawaban

DerekO Jan 18 2021 at 16:31

Sayangnya, Plotly tidak mendukung banyak legenda . Ini adalah masalah terbuka.

Anda bisa menyembunyikan item legenda kiri dari satu legenda yang Anda miliki sekarang, lalu gunakan kotak anotasi persegi panjang dengan teks dari nama variabel tren garis untuk membuat legenda kiri dari awal. Namun legenda tidak benar-benar memiliki fungsi toggling dalam kasus itu dan hanya akan berfungsi sebagai kotak untuk menampilkan nama variabel.