Ускорение апплета визуализации тире
Мне нужно визуализировать данные датчика с помощью следующих характеристик данных:
- Детализация данных в секунду (данные за 12-25 дней), индекс отметки времени
- Около 20 каналов с разными масштабами
- Около 50 наборов данных с указанными выше функциями, каждый будет иметь свой собственный сюжет
График должен быть масштабирован до области журнала / канала, где я хочу исследовать, гранулярность должна быть в секунду, автоматически масштабироваться, и я должен иметь возможность выбирать / отменять выбор каналов. Благодаря сюжету это было легко сделать, как показано ниже в примере кода 1 ниже. Однако это слишком медленно, потому что набор данных слишком велик.
- Есть ли функция, которую я могу использовать, чтобы ограничить объем первоначально нанесенных данных, скажем, график загружается только с одним часом данных. И затем есть интерактивный ввод диапазона, где я могу ввести индексный диапазон для построения графика (всякий раз, когда я открываю график)? Или есть кнопка следующего часа и дня.
- В этом примере с графикой и даташерами, в какой части кода можно контролировать гранулярность? Этот пример идеально подходит для моих нужд, он очень быстрый, но он теряет данные представления в секунду при визуализации. Я не пользовалась
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')