Hallo,
ich habe ein C Programm welches ein paar Daten sammelt und auswertet, ich will diese Daten jetzt grafisch in einem Diagramm darstellen.
Ich dachte mir ich nehme gnuplot dazu, die Frage ist nur wie ich das jetzt am besten umsetze?
Meine erste Idee wäre diese:
- Im Programmverzeichnis noch ein script speicher das gnuplot steuert
- Wenn im Programm die grafische Darstellung gewählt wird die Daten in eine Datei in /tmp schreiben
- danach mit dem system() Befehl gnuplot mit dem script und der Datendatei aufrufen.
Was meint ihr dazu? Ist das ein guter/brauchbarer Ansatz, oder gibt es bessere Möglichkeiten? Ich bin derzeit etwas unsicher, da ich sowas noch nie gemacht habe.
Danke!
gnuplot aus C Programm heraus aufrufen
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
gnuplot aus C Programm heraus aufrufen
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
-
- Beiträge: 520
- Registriert: 12.06.2003 23:18:50
- Wohnort: Siegburg
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
Ich werde mich mal mit popen() etwas beschäftigen, sieht aber ganz interessant aus, und mich dann nochmal mit einer Erfolgsmeldung oder zusätzlichen Fragen meldenOlaf Dietsche hat geschrieben:Du kannst auch popen() benutzen. Dann mußt du deine Daten nicht auf die Platte schreiben, sondern kannst sie direkt an gnuplot schicken.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
so, ich habe jetzt mal etwas mit popen() herumgespielt.
Es funktioniert soweit auch ganz gut, nur ist das Problem das gnuplot gestartet und gleich wieder beendet wird. Das Fenster mit dem Graph sollte aber so lange offen sein bis es der Benutzer wieder schließt.
Mein Testprogramm sieht derzeit so aus:
Wie kann ich dafür sorgen das die Ausgabe von gnuplot offen bleibt?
Danke!
[EDIT]
Hat sich erledigt, ich habe eine gnuplot Option gefunden "--persist"
[/EDIT]
so, ich habe jetzt mal etwas mit popen() herumgespielt.
Es funktioniert soweit auch ganz gut, nur ist das Problem das gnuplot gestartet und gleich wieder beendet wird. Das Fenster mit dem Graph sollte aber so lange offen sein bis es der Benutzer wieder schließt.
Mein Testprogramm sieht derzeit so aus:
Code: Alles auswählen
FILE *fp;
if ((fp = popen("gnuplot", "w")) == NULL)
error("Fehler!");
fprintf(fp, "plot sin(x)\n");
fflush(fp);
Danke!
[EDIT]
Hat sich erledigt, ich habe eine gnuplot Option gefunden "--persist"
[/EDIT]
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
jetzt habe ich nochmal eine Frage, die sich aber eher auf gnuplot bezieht.
Das mit popen funktioniert ja ganz gut solange ich eine Funktion ausgeben will, aber wie übergebe ich dem plot Befehl Datenpaare?
Ich habe da bisher nur die Möglichkeit gefunden indem ich eine Datei schreibe:
1 2
2 5
3 10
4 7
...
und dann plot mit der Datei als Argument aufrufe, aber ich wollte mit der popen() Funktion ja gerade das schreiben einer solchen datei umgehen.
Hat jemand einen Tip wie man datenpaare dem plot Befehl direkt mitgeben kann?
Danke!
jetzt habe ich nochmal eine Frage, die sich aber eher auf gnuplot bezieht.
Das mit popen funktioniert ja ganz gut solange ich eine Funktion ausgeben will, aber wie übergebe ich dem plot Befehl Datenpaare?
Ich habe da bisher nur die Möglichkeit gefunden indem ich eine Datei schreibe:
1 2
2 5
3 10
4 7
...
und dann plot mit der Datei als Argument aufrufe, aber ich wollte mit der popen() Funktion ja gerade das schreiben einer solchen datei umgehen.
Hat jemand einen Tip wie man datenpaare dem plot Befehl direkt mitgeben kann?
Danke!
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
-
- Beiträge: 520
- Registriert: 12.06.2003 23:18:50
- Wohnort: Siegburg
Wenn du als Dateinamen '-' angibst, kannst du die Daten direkt mit übergeben. Die Beschreibung findest du in unter data-file und special-filenames.
Das sieht dann z.B. so aus
Code: Alles auswählen
info gnuplot
Das sieht dann z.B. so aus
Code: Alles auswählen
plot '-', '-'
2
4
6
e
10
12
14
e