2016-07-08 5 views
0

Я хочу использовать что-то вроде Plotly Scatter для построения моих данных, но я хочу, чтобы линии были ровными. Единственное место, которое я мог бы рассмотреть, это параметр Mode.Есть ли какой-либо способ сделать Плоский разброс с плавными линиями, соединяющими точки?

Если бы я был намерен плавный график, мне пришлось бы вводить данные, чтобы сгладить его?

ответ

1

Вы можете использовать параметр «сглаживание» в объекте трассировки. Этот параметр принимает значение от 0 до 1,3, и вы должны быть уверены, чтобы установить форму «» на «» сплайна:

smoothTrace = {'type' : 'scatter', 'mode' : 'lines', 
'x' : [1,2,3,4,5], 'y' : [4, 6, 2, 7, 8], 'line': {'shape': 'spline', 'smoothing': 1.3}} 

plotly.offline.iplot([smoothTrace]) 

Я обнаружил, что количество сглаживания, что этот вариант дает ничтожно мало, в лучшем случае хоть. У меня было больше успеха с использованием фильтра Savitzy-Golay, который поставляется в библиотеке SciPy. Вам не нужно устанавливать параметры «shape» или «smoothing»; фильтр работает с самими значениями:

evenSmootherTrace = {'type' : 'scatter', 'mode' : 'lines', 
'x' : scipy.signal.savgol_filter([1,2,3,4,5], 51, 3), 
'y' : [4, 6, 2, 7, 8]} 

plotly.offline.iplot([evenSmootherTrace]) 

Надеюсь, это поможет!

+0

Можете ли вы указать на части документации на веб-сайте Plotly, что это объясняется? –

+0

Ответ приведет к ошибке, правильным синтаксисом будет: 'smoothTrace = {'type': 'scatter', 'mode': 'lines', 'x': [1,2,3,4,5 ], 'y': [4, 6, 2, 7, 8], 'line': {'shape': 'spline', 'smoothing': 1.3}} ' –

+0

@Maximillian - спасибо за прояснение этого недосмотра , очень признателен! – Rytchbass

1

Вы можете найти необходимую информацию о сглаживании, что plotly обеспечивает в here

Смежные вопросы