Python 在“散布轨迹”下而不是在“散布轨迹”上绘出条形图轨迹?
我试图在plotly/dash中显示同一绘图上的多个痕迹。无论我在数据变量中指定的记录道顺序如何,条形记录道最终总是绘制在散射记录道上。这是我用来生成情节的东西 每个散射迹线都是使用Python 在“散布轨迹”下而不是在“散布轨迹”上绘出条形图轨迹?,python,python-3.x,plotly,plotly-dash,Python,Python 3.x,Plotly,Plotly Dash,我试图在plotly/dash中显示同一绘图上的多个痕迹。无论我在数据变量中指定的记录道顺序如何,条形记录道最终总是绘制在散射记录道上。这是我用来生成情节的东西 每个散射迹线都是使用 go.Scatter( x=list(dfN['DATE']) ,y=list(dfN['VALUE']) ,text=list(dfN['VALUE'].round(decimals=3)) ,hoverinfo='text+name' ,name='Scatter N'
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')
)
并且每个条记录道都是用
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}
我能做些什么,以便在散射迹线下绘制条形图迹线?我尝试设置条的不透明度,但这使整个图形更难查看。我认为您的代码中缺少了一些东西,但我推断**dropin_样式指定条具有yaxis:y2,并且从我的尝试中,它看起来与yaxis相关的轨迹被绘制,然后是与yaxis2关联的那些,所以如果你想让你的散点轨迹位于条轨迹之上,你会想要与yaxis2关联的散点轨迹,您可以将侧边向上切换,使正确的侧边位于右/左。我认为您的代码中缺少了一些内容,但我推断**dropin_样式指定条形图具有yaxis:y2,并且从我的试验中,它看起来与yaxis相关的轨迹被绘制,然后是与yaxis2关联的那些,因此如果您希望散点轨迹位于条形图轨迹的顶部,您将希望散点轨迹与yaxis2关联,并且您可以向上切换侧面,以便正确的散点轨迹最终位于右/左。脱机打印时是否存在相同的问题,例如,在Jupyter笔记本中?脱机打印时是否存在相同的问题,例如在Jupyter笔记本中?哎呀。刚刚在我的作品中添加了dropin_风格的定义,这个假设是正确的。我将把柱状图切换到axis1,看看这是否解决了问题。K,进行了更改,这似乎正是原因。羞耻感没有被记录下来,但我想这是有道理的。如果javascript库按照axis顺序组装SVG,那么yaxis将位于yaxis2之前,并且由于SVG不使用z索引,只是顺序不正确,因此yaxis2将不可能位于yaxis之下。谢谢将plot_bgcolor设置为rgba0,0,0,0透明也有帮助。哇。刚刚在我的作品中添加了dropin_风格的定义,这个假设是正确的。我将把柱状图切换到axis1,看看这是否解决了问题。K,进行了更改,这似乎正是原因。羞耻感没有被记录下来,但我想这是有道理的。如果javascript库按照axis顺序组装SVG,那么yaxis将位于yaxis2之前,并且由于SVG不使用z索引,只是顺序不正确,因此yaxis2将不可能位于yaxis之下。谢谢将绘图颜色设置为rgba0,0,0,0透明也有帮助。