Python Plotly - เลย์เอาต์ YAXIS Legends หลายรายการ [ซ้ำกัน]

Jan 18 2021

ฉันกำลังพยายามสร้างกราฟซ้อนทับ 2 กราฟในรูปเดียวกันแผนภูมิแท่งหนึ่งเส้นและแนวโน้มเส้นเดียวด้วยรหัสด้านล่าง:

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

ด้วยเหตุนี้ฉันจึงมีบางอย่างเช่นข้างต้นที่ทั้งสองตำนานของแอกซิสซ้ายและแอกซิสขวาผสมกัน

มีใครรู้บ้างว่าฉันจะวางแต่ละด้านที่เกี่ยวข้องได้อย่างไร? ตำนานสำหรับแอกซิสด้านซ้ายทางด้านซ้ายและตำนานสำหรับแอกซิสด้านขวาทางด้านขวา? ขอบคุณล่วงหน้า !

คำตอบ

DerekO Jan 18 2021 at 16:31

แต่น่าเสียดายที่Plotly ไม่สนับสนุนหลายตำนาน นี่เป็นการเปิดประเด็น

คุณสามารถซ่อนรายการตำนานด้านซ้ายจากคำอธิบายเดียวที่คุณมีในตอนนี้จากนั้นใช้กล่องคำอธิบายประกอบสี่เหลี่ยมที่มีข้อความของชื่อตัวแปรแนวโน้มเส้นเพื่อสร้างคำอธิบายแผนภูมิด้านซ้ายตั้งแต่เริ่มต้น อย่างไรก็ตามคำอธิบายแผนภูมิจะไม่มีฟังก์ชันการสลับในกรณีนั้นและจะทำหน้าที่เป็นช่องสำหรับแสดงชื่อตัวแปรเท่านั้น