В Dash / Plotly, как я могу получить отдельные сложенные части гистограммы, чтобы показать их значения в целой серии? - PullRequest
0 голосов
/ 30 января 2019

Я создал горизонтальную столбчатую диаграмму в dash и python, и у меня есть несколько вещей, которые я не могу понять, как надо.

  1. Как я могу изменить текст при наведении на основенад какой частью стека вы наводите курсор?В настоящее время он просто отображает значение последнего элемента в стеке и имя стека, где бы я ни находился.Есть ли режим, в котором наведение указывается для каждой секции бара?

Моя легенда гласит, что серия 1, серия 2 или что-то в этом роде, поэтому я скрываю это.Я попытался транспонировать данные и построить график таким образом, но не совсем сработал, потому что параметр name не принимает список.Если бы я мог получить легенду, которая отображает каждый цвет на моей диаграмме как запись легенды с именем, у меня было бы меньше текста, чтобы втиснуть его в сегменты тонких полос.

Я также попытался изменить параметр ширины для полосы, но это только заставило бары перекрываться и не изменило высоту графика, чтобы дать больше места для текста.Я явно новичок там тоже.Я также искал способ расположить текст для тонких стеков так, чтобы он отображался в форме речевого пузыря комиксов (не буквально lol), чтобы он мог указывать на тонкий срез без размера шрифта в нанометрах, но не смог найтичто либо.

# code in question (slightly cleaned)
mm_graphs = []

trace = go.Bar(x=TYPEmethod['PERCENT'].map('{:,.2%}'.format), 
                   y=TYPEmethod['ZONE'], 
                   ids=TYPEmethod['TYPEMETHOD'],
                   text=TYPEmethod['TYPEMETHOD'] + '<br>' + TYPEmethod['PERCENT'].map('{:,.2%}'.format) + '  (' + TYPEmethod['TOTAL'].map('{:,.0f}'.format) + ')', 
                   textposition = 'auto',
                   marker=dict(color=TYPEmethod['COLOR'],
                               line=dict(color='rgb(248, 248, 249)',
                                         width=1)),
                   orientation = 'h',
                   )

layout = go.Layout(barmode='stack',
                   title='Total by Type Method', 
                   yaxis= dict(side='left', hoverformat=',.0f', tickformat=',.3s'), 
                   showlegend=False,
                   )

mm_graphs.append(    
    html.Div([
    dcc.Graph(
        id='mm graph',
        figure={'data': [trace, ],
                'layout': layout
               },
        #config={'displayModebar': False}
    )], style={ 'display': 'inline-block', 'width': '100%', 'height':'auto'}),
)

my chart

ZONETYPEMETHOD,TYPEMETHOD,PERCENT,COUNT_PERCENT,ZONE,TOTAL,COUNT,RUNID,COLOR
ZONE 1-Type 1-Actual,Type 1-Actual,0.793109559,0.726356,ZONE 1,41084184.66,726356,4,"rgba(38, 24, 74, 0.8)"
ZONE 2-Type 1-Actual,Type 1-Actual,0.96847477,0.968464,ZONE 2,27550115.5,484232,4,"rgba(38, 24, 74, 0.8)"
ZONE 3-Type 1-Actual,Type 1-Actual,0.582607727,0.484258,ZONE 3,13637019.24,242129,4,"rgba(38, 24, 74, 0.8)"
ZONE 1-Type 1-Default,Type 1-Default,0.000929148,0.000863,ZONE 1,48131.18425,863,4,"rgba(122, 120, 168, 0.8)"
ZONE 2-Type 1-Default,Type 1-Default,0.001151126,0.001166,ZONE 2,32745.97126,583,4,"rgba(122, 120, 168, 0.8)"
ZONE 3-Type 1-Default,Type 1-Default,0.000661082,0.000558,ZONE 3,15473.8449,279,4,"rgba(122, 120, 168, 0.8)"
ZONE 1-Type 1-Estimated,Type 1-Estimated,0.024885642,0.022781,ZONE 1,1289111.054,22781,4,"rgba(71, 58, 131, 0.8)"
ZONE 2-Type 1-Estimated,Type 1-Estimated,0.030374105,0.03037,ZONE 2,864049.4482,15185,4,"rgba(71, 58, 131, 0.8)"
ZONE 3-Type 1-Estimated,Type 1-Estimated,0.018283777,0.015184,ZONE 3,427965.872,7592,4,"rgba(71, 58, 131, 0.8)"
ZONE 1-Type 2-Actual,Type 2-Actual,0.165247287,0.235032,ZONE 1,8560040.651,235032,4,"rgba(74, 24, 38, 0.8)"
ZONE 3-Type 2-Actual,Type 2-Actual,0.363676711,0.470056,ZONE 3,8512530.952,235028,4,"rgba(74, 24, 38, 0.8)"
ZONE 1-Type 2-Default,Type 2-Default,0.015159932,0.01408,ZONE 1,785305.6715,14080,4,"rgba(168, 120, 122, 0.8)"
ZONE 3-Type 2-Default,Type 2-Default,0.033364489,0.028162,ZONE 3,780958.0214,14081,4,"rgba(168, 120, 122, 0.8)"
ZONE 1-Type 2-Estimated,Type 2-Estimated,0.000668432,0.000888,ZONE 1,34625.72952,888,4,"rgba(131, 58, 71, 0.8)"
ZONE 3-Type 2-Estimated,Type 2-Estimated,0.001406213,0.001782,ZONE 3,32915.04318,891,4,"rgba(131, 58, 71, 0.8)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...