Темперетурный лог и XY Graph
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Темперетурный лог и XY Graph
Ребята нужна помощь. Посмотрите на вложенный VI. Этот VI демонстрирует проблему, с которой я столкнулась. Устройство непрерывно передает данные температуры через каждые 18 секунд, затем делает перерыв в передаче на несколько часов, данные записываются в файл. Далее прочитав этот файл и получив 2D массив отображаю его на графике.... Вопрос как "разорвать" plot , что бы от не отображал данные, когда их небыло. В данном примере время между 6:28:05 PM и 3:13:23 AM. (индексы 350, 351 в массиве) Иначе глядя на график складывается ложное впечатление что температура линейно падала, хотя в реальности было совсем не так... Вот я и хочу что бы этот промежуток не отображался и красная линия на графике состояла из двух частей. Спасибо
- Вложения
-
- Temp Log.vi
- (24.42 КБ) 69 скачиваний
-
- professor
- Сообщения: 3403
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 172 раза
- Контактная информация:
Re: Темперетурный лог и XY Graph
Можно вставить в место разрыва NAN
Можно разделить данные на два plot-а
Можно разделить данные на два plot-а
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Темперетурный лог и XY Graph
Так оно то понятно, что можно вставить NaN или разделить на два плота. Проблема в том что индекс каждый раз другой. Иногда даже бывают два разрыва, тут нужно что то другое... Может как нибудь из временной шкалы кусок вырезать... тогда и пусть себе график выглядит сплошным...
-
- assistant
- Сообщения: 119
- Зарегистрирован: 06 май 2015, 22:24
- Версия LabVIEW: 2014, 2018
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Темперетурный лог и XY Graph
Так в этом и состоит Ваша задача, перед построением графика найти индексы для разрывов и далее придерживаться предложенной методики с NaN.jane_wild писал(а):Проблема в том что индекс каждый раз другой. Иногда даже бывают два разрыва
Разницу между секундами при передаче и часами паузы определить не сложно.
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Темперетурный лог и XY Graph
Находить и смещать разрывы влево - это просто
Делать постоянный X.Scale.Range.Increment (например 10) - чтобы вертикальные линии сетки не ползали
X.Scale.Visible - False
Ну и свою шкалу рисовать вместо нее :)
Делать постоянный X.Scale.Range.Increment (например 10) - чтобы вертикальные линии сетки не ползали
X.Scale.Visible - False
Ну и свою шкалу рисовать вместо нее :)
-
- professor
- Сообщения: 3403
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 172 раза
- Контактная информация:
Re: Темперетурный лог и XY Graph
Вы сами себе противоречите
И в чём проблема, сделать как уже сказано
jane_wild писал(а): тогда и пусть себе график выглядит сплошным...
если вырезать кусок их шкалы, то пользователь скорее всего не заметит, что прошли часы и решит, что температура упала мгновенно.Иначе глядя на график складывается ложное впечатление что температура линейно падала, хотя в реальности было совсем не так...
И в чём проблема, сделать как уже сказано
Код: Выделить всё
if (x[i]-x[i-1]) < (пять-десять_стандартных_dt)
{
вставить в x[i] NAN
вставить в y[i] NAN
}
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Темперетурный лог и XY Graph
Ну да, ничего лучше не придумала, кроме как в лоб сравнивать время между соседними отсчетами. Поставила 6 минут (240 сек)
Возник другой вопрос. Юзер желает знать какова мин. и макс. температура была на определенном отрезке времени. Для этого он делает zoom оси Х графика, возникает событие Scale Range Change, вызываю vi в котором мне необходимо вычислить эту температуру. Перебираю все данные, нахожу индексы мин и мах, обрезаю массив по этим индексам и затем нахожу мин/макс температуры. Оно то работает, но как то много телодвижений, есть ли более рациональный способ?
Все работает, кстати достаточно одного NaN для временной шкалы.Возник другой вопрос. Юзер желает знать какова мин. и макс. температура была на определенном отрезке времени. Для этого он делает zoom оси Х графика, возникает событие Scale Range Change, вызываю vi в котором мне необходимо вычислить эту температуру. Перебираю все данные, нахожу индексы мин и мах, обрезаю массив по этим индексам и затем нахожу мин/макс температуры. Оно то работает, но как то много телодвижений, есть ли более рациональный способ?
-
- professor
- Сообщения: 3403
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 172 раза
- Контактная информация:
Re: Темперетурный лог и XY Graph
если метки времени точно растут, то искать проще с Threshold 1D Array
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 1 Ответы
- 843 Просмотры
-
Последнее сообщение IvanLis