N кривых на XY Graph
-
- beginner
- Сообщения: 24
- Зарегистрирован: 02 ноя 2008, 17:12
- Версия LabVIEW: 7.5
- Контактная информация:
N кривых на XY Graph
помогите пожалуйста. нечто подобное затрагивалось здесь, но, полагаю, что лучше будет вынести вопрос в отдельную ветку.
ниже - пример программы одновременного отображения трех массивов данных (три разных Y) на одном графике в режиме "текущего времени". внимание, вопрос: как решить подобную задачу, но для произвольного количества кривых (вводимых пользователем)? отображение должно происходить "онлайн", а не постфактум.
просьба выкладывать скрины кода, а не vi (у меня LV7.0). спасибо.
ниже - пример программы одновременного отображения трех массивов данных (три разных Y) на одном графике в режиме "текущего времени". внимание, вопрос: как решить подобную задачу, но для произвольного количества кривых (вводимых пользователем)? отображение должно происходить "онлайн", а не постфактум.
просьба выкладывать скрины кода, а не vi (у меня LV7.0). спасибо.
- Вложения
-
- mixGraph.vi
- (47.52 КБ) 200 скачиваний
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
-
Forward
- professional
- Сообщения: 337
- Зарегистрирован: 03 мар 2008, 12:41
- Награды: 3
- Версия LabVIEW: 2010
- Откуда: Кишинев
- Контактная информация:
Re: N кривых на XY Graph
здесь
Ну еще можно просто не отображать все кривые на графике, используя свойство Plot-->Visible. Задаешь номер активного графика и далее указываешь показывать его или нет. Возможно это и имел ввиду Crowbar:
Если тебе нужно строить ступенчатые массивы, то делается это точно так же с использованием XY-graph.Дмитрий писал(а):а как сделать обратную задачу - т.е. как в примере выше, но нужно, чтобы количество кривых задавалось N для for loop, а длина всех кривых уже бы определялась условием из while loop. при этом, чтобы N графиков строилось одновременно
Для твоего примера больше подходит обычный Waveform Chart, а не Graph. Например, вот так: Естественно, в качестве управляющих сигналов не обязательно использовать булевский массив.Дмитрий писал(а):как решить подобную задачу, но для произвольного количества кривых (вводимых пользователем)? отображение должно происходить "онлайн", а не постфактум
Ну еще можно просто не отображать все кривые на графике, используя свойство Plot-->Visible. Задаешь номер активного графика и далее указываешь показывать его или нет. Возможно это и имел ввиду Crowbar:
-
- beginner
- Сообщения: 24
- Зарегистрирован: 02 ноя 2008, 17:12
- Версия LabVIEW: 7.5
- Контактная информация:
Re: N кривых на XY Graph
спасибо. вэйвформ не подходит, т.к. по оси х должен быть сигнал, поступающий из прибора (не время). попробую вариант с Legend->Plots Shown.
-
- beginner
- Сообщения: 24
- Зарегистрирован: 02 ноя 2008, 17:12
- Версия LabVIEW: 7.5
- Контактная информация:
Re: N кривых на XY Graph
ммм. все-таки Active plot скорее. только как его подключить, чтобы правильно работал?
-
Forward
- professional
- Сообщения: 337
- Зарегистрирован: 03 мар 2008, 12:41
- Награды: 3
- Версия LabVIEW: 2010
- Откуда: Кишинев
- Контактная информация:
Re: N кривых на XY Graph
1) Если ты планируешь в каждой итерации собирать по одному значению и постоянно допихивать это значение в массив, то это не есть хорошо .
2) Active Plot - это ты задаешь номер активного графика (над которым ты хочешь произвести какое-то действие в дальшейшем) и только. Дальше надо указать что ты хочешь с ним сделать - например, не прорисовываться. Потом (если нужно) меняешь активный график и делаешь что-либо с ним и т.п. Смотри пример.
2) Active Plot - это ты задаешь номер активного графика (над которым ты хочешь произвести какое-то действие в дальшейшем) и только. Дальше надо указать что ты хочешь с ним сделать - например, не прорисовываться. Потом (если нужно) меняешь активный график и делаешь что-либо с ним и т.п. Смотри пример.
-
- beginner
- Сообщения: 24
- Зарегистрирован: 02 ноя 2008, 17:12
- Версия LabVIEW: 7.5
- Контактная информация:
Re: N кривых на XY Graph
после каждой итерации в массив добавляется не одно значение, а N+1, и эти N должны быть добавлены в виде новых точек на графе в свои соответствующие кривые (см. мой первый пример - там N равно трем, и с каждой итерацией добавляются новые точки к соответствующим кривым).
хорошо, согласен что переписывание массива каждый раз с добавлением нового значения не гут, но как по-другому?
хорошо, согласен что переписывание массива каждый раз с добавлением нового значения не гут, но как по-другому?
-
Forward
- professional
- Сообщения: 337
- Зарегистрирован: 03 мар 2008, 12:41
- Награды: 3
- Версия LabVIEW: 2010
- Откуда: Кишинев
- Контактная информация:
Re: N кривых на XY Graph
А что за задача, что нужно по приходу новых данных отображать все старые? и до каких пор ты собираешь набивать массив? Память ведь не бесконечна...
-
- beginner
- Сообщения: 24
- Зарегистрирован: 02 ноя 2008, 17:12
- Версия LabVIEW: 7.5
- Контактная информация:
Re: N кривых на XY Graph
задача простая - есть эксперимент, где с прибора происходит сбор данных в зависимости от температуры (шкала X). данные - диэлектрический отклик образца при определенной частоте. набор частот задается пользователем произвольно (то самое - N, может быть любым). так вот, необходимо мониторить процесс "на лету", отображая поступающие данные при всех наборах частот от текущей температуры. обображать какую-то одну произвольную частоту - проблем нет. но как сделать, чтобы все частоты на одном графе показывались? это очень желательно, т.к. можно увидеть возможные аномалии диэлектрического отклика на каких-то частотах (в то время как на других этого не будет видно).
вообще, уже подумываю вместо графа использовать Picture - там вроде попроще это можно реализовать. что посоветуете в плане экономии ресурсов - комп старенький.
вообще, уже подумываю вместо графа использовать Picture - там вроде попроще это можно реализовать. что посоветуете в плане экономии ресурсов - комп старенький.
-
Forward
- professional
- Сообщения: 337
- Зарегистрирован: 03 мар 2008, 12:41
- Награды: 3
- Версия LabVIEW: 2010
- Откуда: Кишинев
- Контактная информация:
Re: N кривых на XY Graph
Picture вместо графа - не лучший вариант Чем граф не устраивает-то?Дмитрий писал(а):вообще, уже подумываю вместо графа использовать Picture - там вроде попроще это можно реализовать. что посоветуете в плане экономии ресурсов - комп старенький.
Экономия ресурсов? Проблемы с быстродействием при сборе в зависимости от температуры? В чем они выражаются: какая-то мощная обработка? И насколько стар комп? Вообще в первую очередь стоит посмотреть на собственный код. это в первую очередь экономия времени и сил разработчика, а не ресурсов, ибо ресурсов у современных ПК полно. Прога на чистом WinAPI будет работать в разы быстрее, но придут бессонные ночи...
У тебя в массив добавляется именно одно значение, а не N+1. Если я правильно понял, то N - это размер буфера, который приходит с устройтсва и он задается пользователем. Каждый элемент этого буфера есть отклик образца при различных частотах и каждый элемент это отдельная кривая на графике? Если так, то во-первых почитай вот эту тему про самописец: /viewtopic.php?f=106&t=114. Обрати внимание, что размер буфера не бесконечен. А в случае нескольких кривых самый простой способ как уже было сказано - это всегда собирать максимальное N (если оно не слишком большое конечно), а отображать лишь избранные кривые по запросу пользоваля с помощью свойства Visible.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 1 Ответы
- 811 Просмотры
-
Последнее сообщение IvanLis