Я кодирую сюжетно с python, но я действительно борюсь с ограниченной информацией, показанной на сюжетном сайте. Я пытаюсь построить выпадающее меню для моего сюжета с несколькими подзаговорами взаимозаменяемо. Я sh хочу иметь кластеризованную диаграмму столбцов для каждого раскрывающегося списка. Каждый из вспомогательных участков должен выглядеть примерно так, как показано ниже.
Ось X на приведенной выше диаграмме отображает уникальный age, от 0 до 90.
Тем не менее, моя текущая проблема - реализовать его с помощью выпадающего меню, и вместо этого ось x является категориальной, где в качестве оси x отображается только одно значение "f". .
Моя ось X "Тип пола" должна быть категоричной:
Данные, с которыми я работаю, требуют от меня построить несколько вспомогательных участков с отфильтрованными столбцами:
["SST_mud_mortar_stone", "SST_adobe_mud", "SST_timber", "SST_bamboo", "SST_cement_mortar_brick", "SST_mud_mortar_brick"]
Вот что я получаю вместо этого:
На сюжетном графике показана только одна категория из ['f', 'm', 'v', 'x', 'z']
.
Это код, который я использовал в своей записной книжке Jupyter. Я действительно надеюсь, что то, что я могу изменить, чтобы вместо этого показать все категории на оси х , спасибо:
import plotly.graph_objects as go
import pandas as pd
# Initialize figure
fig = go.Figure()
SST_list = ["SST_mud_mortar_stone", "SST_adobe_mud", "SST_timber", "SST_bamboo", "SST_cement_mortar_brick", "SST_mud_mortar_brick"]
data = []
# Populate Graphs
for sst in SST_list:
layout= go.Layout(title=sst,hovermode= 'closest')
for i in range(0, 3):
dgName = "Damage Grade " + str(i+1)
dgLvl = building_clean[(building_clean['damage_grade']==(i+1)) & (building_clean[sst] == 1)]
if sst == "SST_mud_mortar_stone":
fig.add_trace(go.Bar(name=dgName, x=np.unique(building_clean['ground_floor_type']), y=dgLvl[sst].value_counts(), visible=True))
else:
fig.add_trace(go.Bar(name=dgName, x=np.unique(building_clean['ground_floor_type']), y=dgLvl[sst].value_counts(), visible=False))
fig.update_layout(
updatemenus=[
dict(
active=0,
buttons=list([
dict(label="SST_mud_mortar_stone",
method="update",
args=[{"visible": [True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]},
{"title": "SST_mud_mortar_stone with Ground Floor Type",
"annotations": []}]),
dict(label="SST_adobe_mud",
method="update",
args=[{"visible": [False, False, False, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False]},
{"title": "SST_adobe_mud with Ground Floor Type",
"annotations": []}]),
dict(label="SST_timber",
method="update",
args=[{"visible": [False, False, False, False, False, False, True, True, True, False, False, False, False, False, False, False, False, False]},
{"title": "SST_timber with Ground Floor Type",
"annotations": []}]),
dict(label="SST_bamboo",
method="update",
args=[{"visible": [False, False, False, False, False, False, False, False, False, True, True, True, False, False, False, False, False, False]},
{"title": "SST_bamboo with Ground Floor Type",
"annotations": []}]),
dict(label="SST_cement_mortar_brick",
method="update",
args=[{"visible": [False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, False, False, False]},
{"title": "SST_cement_mortar_brick with Ground Floor Type",
"annotations": []}]),
dict(label="SST_mud_mortar_brick",
method="update",
args=[{"visible": [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True]},
{"title": "SST_mud_mortar_brick with Ground Floor Type",
"annotations": []}]),
]),
)
]
)
# Set title
fig.update_layout(title_text="SST_mud_mortar_stone with Ground Floor Type")
fig.show()