Plotten von Daten aus C
Zur Navigation springen
Zur Suche springen
Es gibt mehrere Möglichkeiten Plots aus C-Programmen heraus zu erzeugen:
- Speichern der Daten in Files, laden in Matlab und Plots erzeugen
- Vorteil: gute, alte Matlab-Plots, Plotbefehle sind (mehr oder weniger) bekannt
- Nachteil: umständlich
- Nachteil: PostScript von Matlab ist für dreidimensionale Grafiken meist riesig und manchmal nicht ganz korrekt - das kann beim Drucken seltsame Probleme verursachen (Druckjob bricht nach der letzten Seite vor der Grafik ab, obwohl man im GhostView alles sieht) --Ahi 13:33, 11 November 2005 (CET)
- In C die Berechnungen und Funktionen, mit denen man die Daten erhält, schreiben.
Dann aus Matlab heraus die Funktionen aufrufen und die erhaltenen Daten plotten- Im Prinzip wie 1. Methode, man spart sich den Zwischenschritt über die Files
- Wie man C-Funktionen aus Matlab startet, findet man hier
- Vorteil: Ausgaben können in einem Schritt erstellt werden
- Nachteil: mann muss zusätzlich die Funktionalität bereit stellen, mit deren Hilfe die Daten ins Matlab kommen
- Verwenden des C-Interfaces von Gnuplot ("gnuplot_i")
- Infos über Gnuplot unter Computer_Benutzung#Visualisierung
Link zum Projekt (alles Nötige steht dort zum Download)
Verwendung von gnuplot_i - Vorteil: einfach!
- Nachteil: man muss sich in die Plotfunktionen einlesen (geht aber unheimlich schnell, da es wie die Matlab-Plots funktioniert, außerdem ist gute Doku vorhanden)
- Nachteil: es sind nicht alle Matlab-Plots verfügbar, aber für die meisten Anwendungen reicht es aus. Es sind auch 3D-Erweiterungen erhältlich!
- Infos über Gnuplot unter Computer_Benutzung#Visualisierung
- Verwenden der GNU plotutils (http://www.gnu.org/software/plotutils/): das ist im wesentlich eine Library für C und Fortran, die Plots für X11, PostScript, SVG (Scalable Vector Graphics) und einige weitere Formate erzeugt. Zusätzlich gibt es die Shell-Commands "graph" und "spline", die aus vorhandenen Daten ohne besonderen Aufwand einfache Plots zeichnen können.
Die schnellste und einfachste Möglichkeit ist, sofern man nicht Matlab-Plots haben muss, sicherlich die 3. Variante.
Wünscht man ein komplett objektorientiertes Design, so gibt es auch ein C++-Interface für Gnuplot.
Ich halte für längere Rechnungen immer noch eine Lösung ohne grafische Benutzeroberfläche für am besten geeignet; man läßt dann die Rechnung im Hintergrund oder im Batchsystem Condor laufen und schreibt die Daten in ein File, entweder in einem Text-Format oder mit netCDF bzw. HDF5. Ohne die laufende Simulation zu stören, kann man von anderen Maschinen aus bereits die Daten analysieren (und plotten). --Ahi 13:25, 11 November 2005 (CET)