2008-10-18 4 views
18

Каков наилучший способ графического отображения графиков в C++?Графики рассеяния в C++

Вы пишете данные в файл и используете другой инструмент? Есть ли библиотека, подобная matplotlib в Python?

+0

чеком http://stackoverflow.com/a/40612989/2192115 – SAAD 2016-11-15 15:26:07

ответ

27

Я всегда выписываю данные, а затем используя gnuplot для создания своих графиков. Это, безусловно, лучший способ создания графиков в различных форматах: eps, png, jpeg, xpm, вы называете это.

gnuplot будет делать разброс участка очень легко. Предоставленные в x и y значения в 2 разделенных пробелами columnss, затем

plot "data.txt" using 1:2 

Даст вам быстрый график рассеяния. Затем вы можете настроить его и не использовать другие команды gnuplot.

Если вы участвуете в науках, то обучение gnuplot будет очень ценным для вас. Он отлично справляется с выполнением предварительных графиков, и это облегчает задачу включения сюжетов в документы.

4

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

11

Если вы ищете C++ библиотека, а не I независимый инструмент черчения как Gnuplot, я хотел бы рассмотреть следующее:

DISLIN, кажется, быть более интересным из двух. Вот описание, извлеченные из статьи Википедии:

DISLIN является высокого уровня и простой в использовании построение библиотеки, разработанной Гельмутом Михельс в Институте Макса Планка в Катленбург-Линдау, Германия. В настоящее время Гельмут Михельс работает математиком и системным менеджером Unix в компьютерном центре института.

Библиотека DISLIN содержит подпрограммы и функции для отображения данных в виде кривых, гистограмм, круговых диаграмм, 3D-цветных графиков, поверхностей, контуров и карт. Поддерживается несколько форматов вывода, таких как X11, VGA, PostScript, PDF, CGM, HPGL, SVG, PNG, BMP, PPM, GIF и TIFF.

DISLIN доступен для языков программирования Fortran 77, Fortran 90/95 и C. Расширения для языков программирования Perl, Python и Java также поддерживаются для большинства операционных систем. Текущая версия DISLIN - 9,4, выпущенная в октябре 2008 года. Первая версия 1.0 была выпущена в декабре 1986 года.

Программное обеспечение DISLIN бесплатное для некоммерческого использования.

3

Проблема в том, что C++, в отличие от Java, например, не имеет встроенного графического интерфейса или графики. Если вы хотите генерировать графики с C++, вам нужно будет использовать графическую библиотеку, доступную для вашей ОС. Есть бесплатные библиотеки графического интерфейса, многие кросс-формы, такие как Qt или GTK.

Однако, как указали другие люди, самым простым для вас было бы сохранить данные в текстовом файле и использовать другую программу для генерации графика. gnuplot определенно является хорошим выбором. Он поставляется с большинством дистрибутивов Linux, и вы получаете для Windows под cygwin.

1

Если вы знакомы с matplotlib, вы можете embed python в приложениях C/C++. В зависимости от того, для чего вы хотите, это может быть быстрым решением.

0

Chart Director имеет привязки для C++. Я использовал их библиотеки .Net, и я был им очень доволен. Это довольно дешевая библиотека и дает вам возможность делать всевозможные графики.

8

Очень тяжелое решение: можно связать с ROOT, которая будет делать почти все, что хотите:

  • работает на Mac, Windows и Linux
  • работает скомпилированные или с использованием CInt interperter
  • выход к файлу в инкапсулированном postscript, PDF, gif, png ...
  • отображение на экране с использованием нескольких различных технологий
  • сериализуйте данные во внутреннем f ormat, которым можно манипулировать позже

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

1

Привет Plotting в C++ для тех, кто не делал еще. Я буду говорить, что я сделал для построения графиков в C++

  1. Скачать архивный файл "gp443win32.zip" от http://sourceforge.jp/projects/sfnet_gnuplot/downloads/gnuplot/4.4.3/gp443win32.zip/

  2. Распакуйте его в "C: \ Gnuplot" потом я прочитал «C: \ GNUPLOT \ Gnuplot \ README.Windows " и я получил эту информацию:

  3. я использовал Windows 7 ==> поэтому вам необходимо скачать "WinHlp32.exe" ... просто искать его" winhlp32.exe Windows, 7 "в поисковой системе и пройти первое соединение.

  4. Append к «Путь» переменной окружающей среды путь для бинарного папку, которая является «C: \ Gnuplot \ Gnuplot \ двоичным»

  5. тогда мне выключить компьютер и открыть его снова. После того, как я обнаружил, что он не почувствовал изменение переменных среды: D

  6. вам сейчас нужно, чтобы написать пример кода, чтобы проверить свои способности замышляет :) так что вы можете посетить эту ссылку http://code.google.com/p/gnuplot-cpp/source/browse/#svn%2Ftrunk , чтобы увидеть заголовочный файл «gnuplot_i.hpp» и исходный файл «example.cc».

Вы получите много и много график, выбрать подходящий график, настроить ядро, и наслаждайтесь :)