УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

Виджет Diagram, тип XY


Автор Повідомлення
Повідомлення створено: 22. 02. 2021 [01:12]
samsond
Dmitry Samsonov
Автор теми
Зареєстрован(а) с: 11.02.2020
Повідомлення: 14
Здравствуйте!

Хотел бы изобразить с помощью виджета Diagram график с произвольными данными (не связанный с параметром, архивом и т.п.)
Согласно документации, для этого требуется указать наличие двух параметров.
При этом значения графика на оси X задаются параметром 1, а значения на оси Y параметром 0.

Как я понял, если нужно рисовать произвольные данные, то вместо адресов параметров требуется указать строку вида:

JAVASCRIPT
data:<d s="1" tm="XXX" tm_grnd="YYY" per="1">
0 3.14
1 3.141
5 3.1415</d>


Я хотел бы для начала изобразить, скажем, параболу.
Т.е., следующий набор точек:

X: 0, 1, 2, 3, 4, 5
Y: 0, 2, 4, 9, 16, 25

Параметру 1 присвоил строку:

JAVASCRIPT
data:<d s="1" per="1">0 1 2 3 4 5</d>


Параметру 0 присвоил строку:

JAVASCRIPT
data:<d s="1" per="1">0 2 4 9 16 25</d>


При этом получил следующий результат:

http://oscada.org/ru/forum/attachments/%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B51105/

То есть, одну точку с координатами {1;2}
Это соответствует второй паре точек из заданного набора.

Если менять значения именно вторых точек в каждом параметре, то отрисовываемая точка перемещается, но проблема в том, что выводится только одна точка вместо пяти!

Прошу подсказать, что не донастроил.

Дополнительный вопрос: имеют ли в режиме XY какое-то значение tm="XXX" tm_grnd="YYY", а также par="ZZZ"? в документации на виджет Diagram по поводу типа XY почти пусто...

[Повідомлення редагувалось 6 раз(ів), останній раз 22.02.2021 в 01:23.]
Вкладений файл

fig1.png (Тип файлу: image/png, Розмір: 115.52 кілобайтів) — 1248 завантажень
Повідомлення створено: 25. 02. 2021 [23:31]
arcsin
Аркадий Кисель
Contributor
Зареєстрован(а) с: 17.02.2017
Повідомлення: 77
добрый день. делал следующее:
третьему и четвертому элементу присваивал
JAVASCRIPT
val:data:<d s="1" aprox="1"  per="1">0 0
1 99.1 
2 101.8 
3 104.3 
4 106.6 
5 108.7 
6 110.8 
7 112.7 
8 114.5 
9 116.3 
10 118 
11 119.6 
12 121.1 
13 122.6 
14 124 
15 125.4 
16 126.8 
17 128.1 
18 129.3 
19 130.5 
20 131.7 
21 132.9 
22 134 
23 135.1 
24 136.2 
25 137.2 
26 138.2 
 
</d>

JAVASCRIPT
val:data:<d s="1" aprox="1"  per="1">0 0
1 0 
2 0.1 
3 0.2 
4 0.3 
5 0.4 
6 0.5 
7 0.6 
8 0.7 
9 0.8 
10 0.9 
11 1 
12 1.1 
13 1.2 
14 1.3 
15 1.4 
16 1.5 
17 1.6 
18 1.7 
19 1.8 
20 1.9 
21 2 
22 2.1 
23 2.2 
24 2.3 
25 2.4 
26 2.5 
 
</d>

результат на картинке. это синий график - теоретическое соотноошение температура/давление. более круглые графики - это реальные данные.

[Повідомлення редагувалось 1 раз(ів), останній раз 25.02.2021 в 23:31.]
Вкладений файл

Снимок экрана от 2021-02-25 23-24-01.png (Тип файлу: image/png, Розмір: 245.48 кілобайтів) — 1049 завантажень
Повідомлення створено: 28. 02. 2021 [23:41]
samsond
Dmitry Samsonov
Автор теми
Зареєстрован(а) с: 11.02.2020
Повідомлення: 14
Аркадий, спасибо!

Действительно, сработало как надо.
Подытоживая, хотел бы зафиксировать несколько вещей, которые, возможно, будут кому-то полезны для работы с режимом XY.
Я потратил слишком много времени, чтобы разобраться с этим.

1. Для отображения кривой в режиме XY нужны два параметра.

Нечетные 1, 3, 5, ... должны содержать данные для X
Четные 0, 2, 4, ... должны содержать данные для Y
Соответственно, пары {1, 0}, {3, 2}, ... будут выведены на диаграмму.

2. В режиме XY если требуется отобразить произвольные данные без привязки к архиву/атрибуту параметра/..., то данные и для X, и для Y нужно готовить в виде строки следующего вида:
JAVASCRIPT
data:<d s="1" aprox="1" per="1">0 0
1 99.1 
2 101.8 
3 104.3 
4 106.6 
5 108.7 
6 110.8 
7 112.7 
8 114.5 
9 116.3 
10 118 
</d>


ВАЖНО! Переводы строки обязательны! Без них ничего выводиться не будет.

Первая цифра в паре - произвольный итератор. Наверное, правильнее всего указывать просто возрастающие на 1 целые.
Вторая цифра в паре - собственно значение либо X, либо Y.

3. Параметры tm="XXX" tm_grnd="YYY" можно не указывать.

4. Цвет кривой определяется атрибутом четного параметра (того, который для Y). Он должен быть задан явно обязательно, иначе - черный квадрат (черная кривая на черном фоне?).

5. В редакторе VISION поля, задающие масштаб по осям X и Y, допускают указать только 3 знака после запятой. Это неудобно в случае, если используется логарифмический масштаб. Но это можно обойти, задавая значения в скрипте.

6. Если границы по осям разных знаков, то ось рисуется симметрично, выбирается наибольшее значение границы по модулю и присваивается с обратным знаком второй границе. Это странно....

7. Поле tSize учитывается и в режиме XY. Его значение должно быть не меньше, чем длина оси X. Иначе точки будут обрезаны при выводе по X.



7237