Я пытаюсь построить диаграмму, аналогичную последней диаграмме в этой ссылке
. Мне нужно затенить область вокруг средней линии (пунктирная линия).Поэтому я вычислил стандартное отклонение и построил две отдельные линии (сверху и снизу).
Когда я пытаюсь использовать тот же код из примера ссылкина моем графике изображен большой прямоугольник: После некоторых испытаний я заметил, что если я удаляю параметр fill='tozerox', fillcolor='rgb(0,176,246)'
, он просто строит большую вертикальную линию в конце диаграммы:
Теперь вот мой код.Обратите внимание, что, поскольку я могу строить линии отдельно (закомментированные строки = chart1), я думаю, что вполне справедливо допустить, что это не проблема с данными
def plot_chart(ratio, mean, time, up_close, low_close):
time_rev = time[::-1]
low_close = low_close[::-1]
plotly.offline.plot({
"data": [
go.Scatter(x=time, y=list(reversed(ratio[:len(sma)])), name='Ratio', line=dict(color='rgb(0, 0, 0)')),
go.Scatter(x=time, y=mean, name='Mean',line=dict(color='rgb(0, 0, 255)', dash='dot')),
#This causes a rectangle (CHART 2):
go.Scatter(x=time+time_rev, y=up_close+low_close, fill='tozerox', fillcolor='rgb(0,176,246)', name='Close Area',line=dict(color='rgb(255,255,255,0)')),
#This plots the lines separately with no problem (CHART 1)
# go.Scatter(x=time, y=up_close, name='Close Area (Upper)',line=dict(color='rgb(0,176,246,0.2)')),
# go.Scatter(x=time_rev, y=low_close, name='Close Area (Lower)',line=dict(color='rgb(0,176,246,0.2)'))
#This plots the vertical line at the end of the chart (CHART 3)
# go.Scatter(x=time+time_rev, y=up_close+low_close, name='Close Area',line=dict(color='rgb(0,176,246,0.2)')),
], "layout": go.Layout(title='Test with Mean + STD')
}, auto_open=True)
Я немного новичок в графике (и построении графиков)библиотеки) так что это может быть что-то простое, что я наблюдаю.Может кто-нибудь пролить свет?
Заранее спасибо.