簡體   English   中英

如何自定義情節圖例順序?

[英]How to customize plotly legend order?

我想將箱線圖中圖例的順序從 1 更改為 12,或者甚至將它們重命名為 Jan、Feb 等。知道我該怎么做嗎?

def make_box_plot(data, xdata, ydata, title, legend):
    fig = px.box(data, 
                 x= xdata, 
                 y= ydata,
                 color= xdata)

    fig.update_layout(
        title= title,
        xaxis_tickfont_size=14,
        xaxis=dict(
            title='Date',
        ),
        yaxis=dict(
            title='Sales',
            titlefont_size=16,
            tickfont_size=14,
        ),
        legend=dict(
            x=0.995,
            y=0.98,
            bgcolor='rgba(255, 255, 255, 0)',
            bordercolor='rgba(255, 255, 255, 0)',
            traceorder= 'grouped'
        ),
        showlegend= legend
    )

    fig.show()

我的數據框。注意月份欄

我的陰謀的結果

px.box按照它讀取 DataFrame df的順序繪制數據,因此您可以將排序的 DataFrame 傳遞給 px.box:

fig = px.box(data.sort_values(by=['month']), 
    x= xdata, 
    y= ydata,
    color= xdata)

如果您想要月份的名稱,您可以通過將'month'列映射到其各自的縮寫(例如'Jan', 'Feb',...來在 DataFrame 中創建一個新列:

import calendar
df['month_name'] = df['month'].apply(lambda x: calendar.month_abbr[x])

然后將'month_name'而不是'month'傳遞給您的make_box_plot函數應該創建一個以 month_name 作為圖例條目的圖表:

make_box_plot(df, 'month_name', 'Sales', 'Cool Title', True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM