如何在绘图中不填充 NaN 下的区域

cla*_*aio 6 data-visualization scatter graph-visualization plotly

巧都,

我正在与情节合作。

我需要画一条曲线并填充它下面的区域。可能会出现一些 NaN,在这种情况下不填充区域非常重要。

请注意,在我的情况下,0 和 NaN 是不同的,因此将 NaN 设置为 0 是解决不适合我的情况的区域问题的方法。

我尝试使用以下代码:

import plotly.graph_objs as go
from plotly.offline import plot

p = go.Scatter(x=range(0,12),
           y = [1,2,3,np.nan, np.nan, np.nan, np.nan, np.nan, 0,0,0,5],
           fill='tozeroy')
fig = go.Figure([p])
plot(fig, auto_open=True)
Run Code Online (Sandbox Code Playgroud)

但我得到了一个我不喜欢的结果。如您所见,没有与 NaN 对应的点,因此在悬停模式中不会显示任何内容(我喜欢它!)但有区域。

在此处输入图片说明

我想达到这个结果:

import plotly.graph_objs as go
from plotly.offline import plot

p1 = go.Scatter(x=range(0,3),
           y = [1,2,3],
           fill='tozeroy')
p2 = go.Scatter(x=range(8,12),
           y = [0,0,0,5],
           fill='tozeroy')

fig = go.Figure([p1, p2])
plot(fig, auto_open=True)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

(当然,我希望情节只有一种颜色,图例中只有一种元素。)

你能帮我在不将曲线分成多条曲线的情况下重现第二个图吗?

谢谢

nic*_*ten 1

编辑:我不认为目前有一种方法可以对区域执行此操作,尽管它确实适用于线条。这是未解决的问题:https ://github.com/plotly/plotly.js/issues/3244