如何使用 category_orders 函数在 plotly dash 中按字母顺序对图例进行排序

How to sort legends alphabetically in plotly dash with category_orders function

我正在使用 Plotly dash 创建散点图。我在最终图中得到的图例是随机放置的。我想使用 category_orders 函数

按字母顺序从 A 到 Z 对标签进行排序
fig = px.box(
            df,
            x=selected_x,
            y=selected_y,
            points='all',
            hover_data=hover_data,
            color=colour_by,
            width=800,
            height=600,
            labels={
                selected_y: "{} {}".format(selected_y_gene, selected_y),
                selected_x: "{} {}".format(selected_x_gene, selected_x),
            },

如果有很多标签,一个简单的替代方法是使用 categoryorder 例如对于 x-axis 使用 Layout.xaxis.

使用鸢尾花数据集的示例:

import plotly.express as px

df = px.data.iris()

fig = px.box(
    df,
    x="species",
    y="sepal_length",
    points="all",
    width=800,
    height=600,
)
fig.update_xaxes(categoryorder="category ascending")

如果您想在 plotly.express.box 中使用 category_orders:

fig = px.box(
    df,
    x="species",
    y="sepal_length",
    points="all",
    category_orders=dict(species=['setosa', 'versicolor', 'virginica']),
    width=800,
    height=600,
)
fig