在散点图下方而不是上方绘制条形图?
Draw plotly bar traces under scatter traces rather than over?
我试图在 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}
我该怎么做才能让条形轨迹绘制在散点轨迹下方?我尝试设置条形的不透明度,但它使整个图表更难看。
我认为您的代码中缺少某些内容,但我推断 **dropin_style
指定条形具有 yaxis: "y2"
并且根据我的试验,它看起来与 yaxis
相关联的痕迹被绘制,然后与 yaxis2
关联的那些,因此如果您希望散点图位于条形图之上,您需要与 yaxis2
关联的散点图,并且可以切换 side
这样正确的最终出现在 right/left.
我试图在 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}
我该怎么做才能让条形轨迹绘制在散点轨迹下方?我尝试设置条形的不透明度,但它使整个图表更难看。
我认为您的代码中缺少某些内容,但我推断 **dropin_style
指定条形具有 yaxis: "y2"
并且根据我的试验,它看起来与 yaxis
相关联的痕迹被绘制,然后与 yaxis2
关联的那些,因此如果您希望散点图位于条形图之上,您需要与 yaxis2
关联的散点图,并且可以切换 side
这样正确的最终出现在 right/left.