Как НЕ заполнять область под NaN в заговоре - PullRequest
2 голосов
/ 17 октября 2019

Ciao all,

Я работаю с плотно.

Мне нужно нарисовать кривую и заполнить область под ней. Могут появиться некоторые 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)

, но я получаю результат, который мне не нравится. Как вы можете видеть, нет точек, соответствующих NaN, так что в hovermode ничего не будет отображаться (мне это нравится!), Но есть область.

enter image description here

Я бы хотел достичь этого результата:

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)

enter image description here

(Конечно, я хотел бы, чтобы сюжет имел толькоодин цвет и только один элемент в легенде.)

Можете ли вы помочь мне воспроизвести второй график, не разбивая кривую на несколько кривых?

Спасибо

ч

1 Ответ

0 голосов
/ 18 октября 2019

Отредактировано: я не верю, что в настоящее время есть способ сделать это с областями, хотя он работает для линий. Вот открытый вопрос: https://github.com/plotly/plotly.js/issues/3244

...