Мне нужно визуализировать данные датчика с помощью следующих характеристик данных:
- Детализация данных в секунду (данные за 12-25 дней), индекс отметки времени
- Около 20 каналовс различными масштабами
- Около 50 наборов данных с вышеуказанными функциями, каждый будет иметь свой собственный график
График должен быть масштабируемым до области журнала / канала, где я хочу исследовать,гранулярность должна быть в секунду, автоматически масштабироваться, и я должен иметь возможность выбирать / отменять выбор каналов.Благодаря сюжету это было легко сделать, как показано ниже в примере кода 1 ниже.Однако это слишком медленно, потому что набор данных слишком велик.
- Есть ли функция, которую я могу использовать для ограничения объема первоначально нанесенных данных, скажем, график загружается только с одним часом данных.И затем есть интерактивный ввод диапазона, где я могу ввести индексный диапазон для построения графика (всякий раз, когда я открываю график)?Или используйте кнопку next hour and day.
- В этом примере plotly + datashader в какой части кода можно контролировать гранулярность?Этот пример идеально подходит для моих нужд, он очень быстрый, но он теряет данные представления в секунду при визуализации.До этого я не использовал
xarrays
и tf.shade
.Если есть способ построить данные, как в этом методе.Это будет идеально, потому что этот график предназначен для 100 миллионов точек , в то время как мои данные будут максимум около 20 миллионов точек (и мне даже все это не нужно сразу).Я смог вставить свои массивы в этот график, и он отлично работал. - Есть ли приложение с открытым исходным кодом, которое может обработать этот запрос, табло общедоступно медленно и имеет плохую функцию масштабирования.
Sample1
import plotly
import plotly.plotly as py
import plotly.graph_objs as go
#df = case_1
traceC1 = go.Scatter(
x=random_x,
y=case_1["channel1"],
mode='lines+markers',
name="channel1",
hoverinfo='y',
line=dict(
shape='vhv'
)
)
traceC3 = go.Scatter(
x=random_x,
y=case_1["channel3"],
mode='lines+markers',
name="channel3",
hoverinfo='y',
line=dict(
shape='vhv'
)
)
#And more traces in similar fashion.
fig_case1 = tools.make_subplots(rows=3, cols=1)
fig_case1.append_trace(traceC1, 1, 1)
fig_case1.append_trace(traceC3, 2, 1)
fig_case1['layout'].update(height=1300, width=1950)
plotly.offline.plot(fig_case1,auto_open=False, filename='case_1.html')