Russian Qt Forum
Март 28, 2024, 12:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Масштаб графиков  (Прочитано 5137 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Март 03, 2018, 06:14 »

Добрый день

N графиков рисуются в одном окне, рядом список рисуемых, юзер может его менять. Также показываются шкалы времени и значений. Графики могут иметь совершенно разный диапазон значений, поэтому в списке юзер может присвоить каждому свой масштаб по Y. Напр задал 2, все значения этого графика умножаются на 2 при отрисовке, чтобы он стал соразмеримым с другими.

Проблема: а что показывать в шкале значений если один или более графиков имеют масштаб != 1 ? Вот был бы 1 график - проблемы нет, показывать "истинные" значения, и все дела. А так что? Ну или как-то намекнуть, что, мол, значения масштабленные. Не уверен что здесь вообще есть решения.

Спасибо
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 573


Просмотр профиля
« Ответ #1 : Март 05, 2018, 08:29 »

Обычно отображают условные единицы, а в легенде указывают масштабный коэффициент и единицы измерения.
Если планируется использовать разные шкалы, например, обычную и логарифмическую, то ось y располагают с двух сторон.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Март 06, 2018, 11:45 »

Обычно отображают условные единицы, а в легенде указывают масштабный коэффициент и единицы измерения.
Если планируется использовать разные шкалы, например, обычную и логарифмическую, то ось y располагают с двух сторон.
Разумно, но не вижу как применить к моему случаю. Какие графики показывать - целиком дело юзера. Досадно что в большинстве случаев активен 1 график, остальные "в фоне" или вообще не рисуются. Если активный имеет масштаб != 1 то шкала "не соответствует"

Ну наверное "ларчик просто "не открывался"  Улыбающийся, т.е. объективно нет решения
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Март 06, 2018, 13:05 »

ну а почему бы не показывать только шкалу того графика, который "активен"?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Март 07, 2018, 08:19 »

ну а почему бы не показывать только шкалу того графика, который "активен"?
Тогда что делать если активируется еще один? Менять шкалу - под какой? А если оставить для первого - то при активации в обратном порядке несоответствие
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 573


Просмотр профиля
« Ответ #5 : Март 07, 2018, 09:57 »

Разумно, но не вижу как применить к моему случаю. Какие графики показывать - целиком дело юзера. Досадно что в большинстве случаев активен 1 график, остальные "в фоне" или вообще не рисуются. Если активный имеет масштаб != 1 то шкала "не соответствует"
Ну наверное "ларчик просто "не открывался"  Улыбающийся, т.е. объективно нет решения

А я не вижу как не применить))). Смеющийся Либо способ применения не весь описан (для чего пользователю эти графики - информативные, средства управления и т.п.; какую задачу для пользователя решают и т.д.).

Пусть есть условная шкала от -10 до 10, диапазон можно выбрать любой.
Графики автоматически масштабируем по принципу ... x1/10, x1/5, x1/2, x1, x2, x5, x10, x20, x50 ..., чтобы в отображаемый диапазон влезли.
Пользователь может флажки видимости выставлять, менять цвета, типы линий и т.п.

Потом для красоты можно еще и вписать в границы. То есть если мы выбрали условный диапазон -10, 10, а все графики получились, например, в диапазоне -0.93 до 6.59, то можно отобразить только значимую область от -1 до 7.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Март 07, 2018, 11:57 »

ну а почему бы не показывать только шкалу того графика, который "активен"?
Тогда что делать если активируется еще один? Менять шкалу - под какой? А если оставить для первого - то при активации в обратном порядке несоответствие

Вторую шкалу дорисовать, другим цветом. Обычная практика вроде бы Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Март 08, 2018, 08:54 »

А я не вижу как не применить))). Смеющийся Либо способ применения не весь описан (для чего пользователю эти графики - информативные, средства управления и т.п.; какую задачу для пользователя решают и т.д.).
Все очень банально. Ось X - всегда время, ось Y - значение. Напр движение объекта в пр-ве может быть представлено 3 графиками  x, y, z. Их соразмеримость обычно важна, вписывать каждый не годится. Теперь напр юзер добавил еще и график вращения (в градусах), и очень может быть что он показывается практически горизонтальной линией, если его диапазон значений намного меньше. Остается дать юзеру возможность самому задать масштаб для каждого.

Вторую шкалу дорисовать, другим цветом. Обычная практика вроде бы Улыбающийся
И для третьего графика... Улыбающийся
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #8 : Март 08, 2018, 10:17 »

Для третьего - еще одну шкалу)

Альтернатива: как только больше 2 графиков, спрятать все шкалы и показывать только ту, по чьей легенде кликнул юзер.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.