Python Plotly-다중 YAXIS 범례 레이아웃 [중복]

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

결과적으로 왼쪽 y 축과 오른쪽 y 축에 대한 두 범례가 함께 혼합 된 위와 같은 것이 있습니다.

누구든지 내가 각각을 관련 측면에 놓을 수있는 방법을 알고 있습니까? 왼쪽의 왼쪽 y 축에 대한 범례와 오른쪽의 오른쪽 y 축에 대한 범례? 미리 감사드립니다!

답변

DerekO Jan 18 2021 at 16:31

불행히도 Plotly는 여러 범례를 지원하지 않습니다 . 이것은 공개 된 문제입니다.

현재 가지고있는 하나의 범례에서 왼쪽 범례 항목을 숨긴 다음 선 추세 변수 이름의 텍스트가있는 직사각형 주석 상자를 사용하여 처음부터 왼쪽 범례를 작성할 수 있습니다. 그러나이 경우 범례에는 실제로 토글 기능이 없으며 변수 이름을 표시하는 상자 역할 만합니다.