Есть ли способ показать пустые (с точки зрения данных) трассировки в легенде гистограммы Plotly Express Python без добавления нулевых данных?

В продолжение вопроса, заданного здесь в 2015 году, я желая показать все возможные трассировки на горизонтальной гистограмме, используя Plotly Express в Python. Вот пример кода:

import plotly.express as px

scores = [10, 20, 30, 40, 50, 60, 70, 80]
names = ["Item 1","Item 2","Item 3","Item 4","Item 5","Item 6","Item 7","Item 8"]
score_name_color = ['0-20','0-20','21-40','21-40','41-60','41-60','61-80','61-80']

## Plot
fi = px.bar(
    x = scores,
    y = names,
    color_discrete_map = {'0-20':'#14327a', '21-40':'#3a87b5', '41-60':'#eed358', '61-80':'#e5934b', '81-100':'#c8352b'},
    color = score_name_color,
    orientation = 'h',
    text = scores,
    title = 'Scores',
    category_orders={'color': ['0-20', '21-40', '41-60', '61-80', '81-100']},
    labels = {'x':'Score', 'y':'Names', 'color':'Index'},
)
fi.update_xaxes(
    range=[0, 100]
)
fi.update_layout(
    yaxis={'categoryorder':'total ascending'},
    uniformtext_minsize=24,
    title_x=0.5
)
fi.update_traces(
    hovertemplate=None,
    hoverinfo='skip'
)
fi.show(config={"displayModeBar": False, "showTips": False})

Как вы можете видеть с массивами scores, names и score_name_color по сравнению с переменной color_discrete_map, у меня есть все точки данных, кроме одной в диапазоне 81-100. Если вы посмотрите на легенду, она показывает только то, что видно из набора данных, и отсутствует элемент диапазона 81-100. Я хотел бы, чтобы элемент диапазона 81-100 отображался визуально в легенде, чтобы показать, что есть другой диапазон, который может быть представлен, даже если он не представлен в этом конкретном наборе данных. Как я могу показать элемент диапазона 81-100 в легенде, не добавляя значение null в свой набор данных?

введите здесь описание изображения


person ParkerWilliams    schedule 18.09.2020    source источник