Как построить график вывода консольного приложения C++ Win32?

StackOverflow https://stackoverflow.com/questions/867813

  •  22-08-2019
  •  | 
  •  

Вопрос

У меня есть небольшое консольное приложение Win32, которое по сути представляет собой тестовую программу.Я считываю данные, выполняю над ними некоторую обработку и сейчас просто вывожу некоторые числа на консоль.Это не такая уж большая проблема — я могу получить представление о том, как выглядят данные, но их было бы гораздо проще анализировать, если бы существовал способ представления этой информации в виде графика для каждого запуска программного обеспечения.

Недавно я освоил GNUPlot, но не могу придумать простой способ отправки в него данных.Кто-нибудь пробовал это?...или мне стоит попробовать другое графическое приложение?

Excel и OO Calc — отличные инструменты, и я сам много раз загружал в них данные в формате .csv для построения графиков.Однако я надеялся найти способ динамически передавать данные в графическое приложение, чтобы избежать необходимости закрывать/повторно открывать Excel и строить график каждый раз, когда я хочу просмотреть некоторые данные.

Я думаю, что вы можете передать данные в GNUPlot (именно поэтому я об этом упомянул), но подробности того, как это сделать, довольно скудны.

Это было полезно?

Решение

Для этого вам действительно не нужно прикасаться к VBA.

В Excel вы можете настроить соединение данных с файлом, он поддерживает многие типы файлов, но CSV работает нормально.

  • Перейти к элементу списка
  • Вкладка «Данные»
  • Нажмите «Соединения»
  • Нажмите Добавить
  • выберите файл
  • зайди в свойства соединения - убери галочку с запроса имени файла
  • установите необходимый период.
  • закройте диалог соединений
  • выберите начальную ячейку для импорта данных — ячейку 1a на листе 2
  • щелкните существующие соединения
  • выберите подключение для передачи данных
  • перейдите на рабочий лист 1, добавьте диаграмму и подключите данные.

диаграмма теперь будет обновляться автоматически

это Excel 2007 - но думаю, что в более старой версии это было, и я думаю, что OO может это сделать.

Другие советы

Простой подход — записать данные в формате CSV, а затем импортировать их в электронную таблицу, например Excel или OpenOffice, для построения графика.

Редактировать: Следуя вашему вопросу, я сам заинтересовался GNUPlot — это самое простое описание его использования из командной строки, которое я нашел: http://www.goldb.org/goldblog/CommentView,guid,f378e279-eaa5-4d85-b7d2-0339a7c72864.aspx

Никогда не стоит недооценивать возможности Excel и дампа данных в формате CSV.

Записать данные в файл .csv в формате C++ не очень сложно, и на эту тему существует множество статей, например: здесь, или просто погуглите.

Excel может легко загружать файлы .csv, а затем вы можете просто использовать их для построения любых необходимых графиков.Это особенно полезно, если вам просто нужна быстрая визуальная проверка результатов и т. д.

Возможно, вы также захотите изучить XMGrace который позволяет вам запускать его и управлять им непосредственно из программ C/Fortran, как показано здесь

Excel полностью поддерживает сценарии.Используйте средство записи макросов, чтобы выяснить шаги.Создайте диаграмму на отдельном листе.Затем сохраните диаграмму, используя фильтр GIF.

Фактический импорт выглядит примерно так:

ActiveChart.Export FileName:=something_dot_gif, FilterName:="GIF"

я только что нашел пример передачи данных в gnuplot на сайте Кардиффского университета.Еще не пробовал, но выглядит многообещающе!

[редактировать] ..и другой, который включает в себя некоторые примечания для окон.

Вы можете использовать МатГЛ - он может создавать окно (FLTK, GLUT или Qt) и отображать график внутри.Также он имеет большой набор типов графиков и может работать в консоли.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top