首页 > 解决方案 > Plotly-将x轴放在前面

问题描述

我正在尝试创建一个散点图。但是阴影超出了 x 轴线。我试过 fig.update_xaxes(layer='above traces') 但这似乎没有任何作用。任何帮助将不胜感激。

import numpy as np
import pandas as pd
import plotly.graph_objects as go
import plotly.offline as py

np.random.seed(42)
df = pd.DataFrame({'values':np.random.normal(loc=0, scale=10, size=30)})

fig = go.Figure(go.Scatter(
    x=df.index,
    y=df['values'],
))
fig.add_trace(go.Scatter(y=[20,20], x=[0,30], fill='tonexty'))
fig.update_layout(yaxis=dict(zeroline=True, zerolinewidth=2, zerolinecolor='black'), plot_bgcolor='white', xaxis=dict(zeroline=True, zerolinewidth=2, zerolinecolor='black', layer='above traces'))

py.plot(fig)

图表的图片在这里

标签: plotly

解决方案


如果您使用注释在 y 轴中间创建 x 轴,则可以将阴影区域添加为另一个注释并指定layer="below".

import numpy as np
import pandas as pd
import plotly.graph_objects as go

np.random.seed(42)
df = pd.DataFrame({'values':np.random.normal(loc=0, scale=10, size=30)})

fig = go.Figure(go.Scatter(
    x=df.index,
    y=df['values'], 
))

## add shape that covers some of the data
## specify the layer below
fig.add_shape(type="rect",
    x0=1, y0=-10, x1=10, y1=10,
    line=dict(
        color="Gray",
        width=2,
    ),
    fillcolor="LightGray",
    layer="below"
)

fig.update_layout(yaxis=dict(showline=True, linecolor="black", linewidth=2))

## add xaxis using horizontal line annotation
fig.add_hline(y=0)

fig.show()

在此处输入图像描述


推荐阅读