2010-11-26 11 views
5

Ich habe eine Frage zum Plotten von Paket für C++. Für letzten Jahren Python und matplotlib war ich mit, jetzt ich C++ verwende, und ich möchte etwas Ähnliches finden, um matplotlib (http://matplotlib.sourceforge.net/gallery.html) wie 2d, 3D-Plots, Histogramme und und so weiter. Ich möchte nur deine Empfehlung wissen.Plotten Paket für C++

Mit freundlichen Grüßen, nykon

Antwort

5

Ich würde wieder gnuplot empfehlen.

Wenn Sie nicht wollen, es zu benutzen, dann mochte ich plplot wenn ich es benutzt: http://plplot.sourceforge.net/. Die Leinwand plplot kann zu setzen in gtk + Rahmen, wenn Sie Tasten auf Ihrem Grundstück hinzufügen möchten.

Das heißt, ich kehrte zu lange zu gnuplot zurück.

+0

Das ist es, thenk Sie :) Es ist auch für meinen Python und Fortran so für Astrophysik sehr wichtig ist. Lass die Kraft mit uns sein: p – nykon

3

Haben Sie versucht Gnuplot mit? Eine C++ interface ist ebenfalls verfügbar.

+0

Ja, ich benutze gnuplot manchmal, aber ich will etwas, das für sci besser aussieht. Papiere. – nykon

+2

Ich bin auch überrascht, dass Gnuplot nicht Ihren Bedürfnissen entspricht. Es bedarf einiger Feinabstimmungen, aber Sie können damit Publikationen in Publikationsqualität erhalten. Einige Beispiele finden Sie unter http://www.phyast.pitt.edu/~zov1/gnuplot/html/gallery.html. – jmbr

+0

+1 für gnuplot. Insbesondere gnuplot hat einen pslatex Terminal, dass der Text des Grundstücks ermöglicht durch Latex Verabschiedung des Dokuments behandelt werden - das heißt Ihre Schriften korrekt sind und sind eine einheitliche Größe. Dies kann Gnuplot sehr schön in Ihre Latex-Dokumente passen. – Tom

1

Ich verwendete Qwt einige Zeit zurück. Es ist eine Bibliothek über Qt, die eine Reihe von sehr nützlichen Plot-Tools zur Verfügung stellt. Hüten Sie sich vor Qt-Lizenzgebühren, wenn es sich tatsächlich um ein kommerzielles Projekt handelt.

2

Es gibt GPL-Bibliothek MathGL, die in C++ geschrieben ist und Schnittstellen zu Python/C/Fortran und so weiter haben. Es kann auch viele 3D-Plots erstellen.