Рисовать графически штриховые трассы под точечными точками, а не поверх?

Я пытаюсь показать несколько следов на одном графике в plotly/dash. Независимо от порядка следов я указываю в data переменная, следы стержня всегда заканчивают рисованием по следам разброса. Вот что у меня есть для генерации сюжета.

Каждый из следов рассеяния генерируется с

go.Scatter(
    x=list(dfN['DATE'])
    ,y=list(dfN['VALUE'])
    ,text=list(dfN['VALUE'].round(decimals=3))
    ,hoverinfo='text+name'
    ,name='Scatter N'
    ,mode='lines+markers'
    ,marker=dict(
        color='rgb(230,159,0)',
        size=15,
        opacity=1,
        line={'width': 0.5, 'color': 'white'}
    )
)

и каждый из следов бара генерируется с

dropin_style=dict(
    hoverinfo='text+name'
    ,hoverlabel=dict(
        namelength=-1
    )
    ,textposition = 'auto'
    ,yaxis='y2'
)
go.Bar(
    legendgroup='bars'
    ,x=list(dfM['DATE'])
    ,y=list(dfM['VALUE'])
    ,text=list(dfM['VALUE'])
    ,name='Bar M'
    ,**dropin_style
    ,marker={'color':'#cccccc'}
    ,textfont=dict(color='#000000')
)

затем следы все вместе

data = [bar1, bar2, bar3, bar4, bar5,
                scatter1, scatter2, scatter3,]
layout = go.Layout(
    showlegend=True
    ,legend=dict(orientation="h",x=0, y=1.3)
    ,barmode='stack'
    ,xaxis=dict(
        dtick='M1'
    )
    ,yaxis=dict(
        range=[0,1.1],
        fixedrange=True,
        title='Percent'
    )
    ,yaxis2=dict(
        range=[0, ymax]
        ,fixedrange=True
        ,side='right'
        ,title='Count'
        ,overlaying='y'
        ,zeroline=False
        ,showgrid=False
    )
)
return {'data': data, 'layout': layout}

Что я могу сделать, чтобы получить следы баров для построения под точками рассеяния? Я попытался установить непрозрачность столбцов, но это усложняет просмотр графика.

1 ответ

Решение

Я думаю, что-то не хватает в вашем коде здесь, но я предполагаю, что **dropin_style указывает, что бары yaxis: "y2" и из моих испытаний это выглядит следы, связанные с yaxis втянуть, то те, которые связаны с yaxis2 поэтому, если вы хотите, чтобы ваши следы рассеяния находились поверх ваших следов от баров, вам понадобятся следы рассеяния, связанные с yaxis2и вы можете переключить side так что правильные окажутся справа / слева.

Другие вопросы по тегам