2009-08-14 13 views
26

Meine Frage ist im Geist auf diese Frage sehr ähnlich: What is the best plotting library for Python?Gute Plot-Bibliothek für C?

Was zum Plotten Daten in C meine beste Wette ist? Bin es besser, auf eine Bibliothek zu verzichten und nur Daten zu generieren, die ich direkt in gnuplot einspeisen kann?

Mein Antrieb für diese Frage ist in der Lage, DSP-Transformationen zu visualisieren, während die ausgezeichneten Ressourcen in einem earlier question of mine zu studieren. Der Fokus liegt also wirklich nur auf 2D-Plots, Histogrammen usw .; 3D ist im Moment nicht so wichtig.

Antwort

16

Ich denke, Sie sind mit gnuplot auf dem richtigen Weg. Für was Sie wollen, ist es sehr leistungsfähig und flexibel.

Sie können jedoch in Erwägung ziehen, direkt aus Ihrer Anwendung in gnuplot zu schreiben, anstatt Daten zu erstellen und zu füttern. Es ist ein ANSI C API to gnuplot verfügbar.

+0

Ich habe Gnupplus entwickelt, eine C++ - Variante der Bibliothek, die Sie verknüpft haben. Sie können einen Link dafür auf der gleichen Webseite finden, die Sie gepostet haben. – Dacav

+0

Sie können gnuplot entweder forcieren/exec und über eine Pipe zuführen oder einfach Ihre Daten auf der Standardausgabe ausgeben und sie an gnuplot übergeben. Normalerweise mag ich die 2. Lösung besser, da sie es ermöglicht, 'awk' (oder etwas anderes) zu verwenden, um das gnuplot-Skript vorher zu modifizieren. –

1

Unter Mac OS X Sie Ihre Daten auch direkt in Plot ernähren können, die Funktionen Perl-basiertes Scripting und eine Kommandozeilen-Schnittstelle für nicht-interaktive Datenverarbeitung:

http://plot.micw.eu

Im Sinne eines Mac OS X C-ish-Plotting-Framework siehe Core-Plot.

0

Haben Sie sich AntiGrain angeschaut? es ist multiplatform

2

libgd. Aber wenn Sie nicht viele Daten zum Plotten haben, ist Gnuplot ein guter Weg zu gehen, wie andere vorgeschlagen haben.

1

Ich habe PLplot gefunden, die interessant zu sein scheint. Ich versuche es gerade jetzt und ich werde hier einen kurzen Bericht darüber veröffentlichen, da ich etwas mehr darüber wissen werde.

Update: Als erstes blush scheint es schlecht gestaltet zu sein, da es Interaktivität zur Anwendung hinzufügt (IMHO sollte eine Bibliothek niemals direkt mit dem Benutzer interagieren, es sei denn, dies ist der Zweck der Bibliothek).

7

MathGL ist plattformübergreifende (Windows/Linux/MacOS) freie (GPL, LGPL für Kern) Plotten Bibliothek. Es ist schnell, hat viele Grafiktypen, kann riesige Datenfelder plotten, kann Bitmap und Vektor (EPS/SVG/U3D) ausgeben, kann OpenGL benutzen, kann in der Konsole laufen (brauche kein X), hat viele Schnittstellen (Fortran/Python/... mit anderen Sprachen zu kombinieren), haben FLTK/Qt Widgets, kann ein eigenes Fenster mit Plotten erstellen, und so weiter.

+0

Es scheint ziemlich schwer, aber für "Produktion" Code, es scheint großartig. Für das Prototyping ist gnuplot jedoch unschlagbar. –

+0

Ich habe gerade Abhängigkeit erfahren, die er versucht, statische Verknüpfung mit MathGL auf MINGW zu tun. Nur meine bisherigen Erfahrungen. –