![]() |
|
Рейтинг 4.67/55: ![]() |
0 / 0 / 0
Регистрация: 29.07.2016
Сообщений: 6
|
|
Построение графика по массиву данных29.07.2016, 13:35. Показов 11174. Ответов 13
Здравствуйте!
Есть задача построить график в маткаде по массиву данных, на подобии такого: https://www.cyberforum.ru/atta... 1469786922 Тоесть, по шкале Х откладывается время, в виде ЧЧ:ММ:СС - именно с этим возникла проблема. Данные из вида ЧЧ:ММ:СС переносятся в формат числовой. Тоесть, к примеру: 19:13:53 представляется как 0,80130787037037 Ексель переводит без проблем, а как в маткаде поступить - пока неясно. Сделал на костылях дозапись в в массив еще одного столбца просто с нумеровкой измерений. Итого график стал приблизительно таким: https://www.cyberforum.ru/atta... 1469787500 Естественно, что нельзя так просто сказать в какой период времени что-то там изменялось. Прикладываю маткадовскую программу (массив данных урезал): https://www.cyberforum.ru/atta... 1469788473
0
|
29.07.2016, 13:35 | |
Ответы с готовыми решениями:
13
Построение поверхности по массиву данных Построение графика по массиву данных в VB Загрузка данных, построение графика, сохранение и очистка данных |
0 / 0 / 0
Регистрация: 29.07.2016
Сообщений: 6
|
|
29.07.2016, 17:31 [ТС] | |
0
|
![]() 7007 / 5028 / 2117
Регистрация: 02.02.2014
Сообщений: 13,322
|
|
29.07.2016, 19:11 | |
метод довольно грубый, если другой вариант не предложат, то можно использовать такой...
точное число, существующее в массиве, можно получить трассировкой (необходима галочка на "отслеживать точки данных"), "скопировать Х" и вставить на место, выделенное желтым, так можно оценить время на "глазок". скорректированный excel-файл FOR_C_cut.xlsx в excel-файле достаточно написать в первой ячейке =ТЕКСТ(A1;"чч:мм:сс"), далее двойной щелчок на темном правом нижнем уголке ячейки (курсор должен превратиться в плюсик)- и весь столбец будет заполнен.
0
|
13 / 13 / 5
Регистрация: 20.04.2016
Сообщений: 24
|
|
30.07.2016, 12:53 | |
получаемое десятичное число - это доля от 24-х часового интервала
1. если таблицу с этими значениями time умножить на 24, получится таблица значений часов в десятичное форме 2. поскольку значения времени изменяются на несколько секунд, можно на временной оси отмечать секунды с начального момента времени. если принципиально, над графиком можно написать время в нужном Вам формате "начальный момент времени ч:м:с" 3. эти значения (в часах или секундах) можно получить заранее в excel, используя временные функции
0
|
![]() 7007 / 5028 / 2117
Регистрация: 02.02.2014
Сообщений: 13,322
|
|
31.07.2016, 09:30 | |
еще вариант.. с excel-файлом ничего делать не нужно, на ось выводится время в десятичной форме
но надо учитывать особенности десятичного числа, на график лучше выводить в точках, если массив достаточно мал.. на больших это незаметно
0
|
0 / 0 / 0
Регистрация: 29.07.2016
Сообщений: 6
|
|
03.08.2016, 12:12 [ТС] | |
Благодарю за ответы!
Такие решения подходят для графика, записанного в течении суток. К сожалению, эти варианты не годятся, когда нужно строить график по данным с нескольких дней: Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/attachment.php?attachmentid=722803&stc=1 &d=1470215430
При этом, в екселе все понятно видно, какое количество времени прошло, с сутками проблем нет: Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/attachment.php?attachmentid=722804&stc=1 &d=1470215430
P.S. Не пойму, как под спойлер спрятать картинки, не серчайте ![]() Для сравнения, если количествам измерений просто присвоить порядковый номер, то все график выглядит адекватно: https://www.cyberforum.ru/atta... 1470216145 Может, есть функция подмены значений? Например, в одном столбце номер в числовом виде, рядом время в текстовом в формате "чч:мм:сс": P.S. разобрался с вложениями
0
|
13 / 13 / 5
Регистрация: 20.04.2016
Сообщений: 24
|
|
03.08.2016, 16:10 | |
в любом случае, время в формате ч:м:с показать на mcd-графике невозможно. Вам нужно определиться в каких единицах будете откладывать временную ось (часах, минутах, секундах) и начало отсчёта, т.е. какой момент времени принять за 0. пусть t0 = первое значение времени из таблицы, тогда количество часов, прошедшее с этого момента, определяем простым умножением на 24, если нужны минуты, то на 24*60
P.S. Вы бы полный excel-файл с данными загрузили сразу...
0
|
![]() 7007 / 5028 / 2117
Регистрация: 02.02.2014
Сообщений: 13,322
|
||||||
12.08.2016, 23:09 | ||||||
в маткаде получился страх, а не график...
если я правильно поняла, вы в маткад метнулись строить график из-за того, что excel не дает строить больше 32 тыс точек? а почему бы не использовать каждую десятую точку, результат от этого не портится.. махонький макрос для excel, на график достаточно 6849 точек...
0
|
0 / 0 / 0
Регистрация: 29.07.2016
Сообщений: 6
|
|
22.08.2016, 00:19 [ТС] | |
Это на данном этапе всего 3-4 дня, но если будет годовой лог, то количество точек будет около 540000, если даже поминутно брать.
0
|
22.08.2016, 00:19 | ||||||
Помогаю со студенческими работами здесь
14
Построение графика на основе данных из БД Фильтрация данных. Построение графика
Построение графика на основе введенных данных Построение графика из данных таблицы oracle Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
BASH scripting - the best cases [PurpleSchool]
jigi33 08.04.2025
Занятия BASH в PurpleSchool - отличные примеры для внедрения в практику
(see screenshots and file names)
|
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. )
В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
|
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
|
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
|
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
|
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
|
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
|
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
|
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
|
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
|