Plotten von Daten aus C: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
(GNU plotutils, Was ist im Batchbetrieb)
Zeile 14: Zeile 14:
 
#* 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: 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!
 
#* 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!
  +
# 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 einioge 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.
 
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.
 
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). --[[User:Ahi|Ahi]] 13:25, 11 November 2005 (CET)

Version vom 11. November 2005, 14:25 Uhr

Es gibt mehrere Möglichkeiten Plots aus C-Programmen heraus zu erzeugen:

  1. 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
  2. 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
  3. 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!
  4. 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 einioge 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)