Forum: PC-Programmierung Liniendiagramm aus MySQL Datenbank


von Hydro (Gast)


Lesenswert?

Hallo,

folgende Aufgabe. Ich habe eine MySQL-Datenbank, die laufend mit neuen 
Daten gefüllt wird (1 Datensatz pro Sekunde (Datum, Zeit, Spannung)). 
Aus diesen Daten möchte ich ein Liniendiagramm erstellen. Es soll sich 
selber live erweitern und immer die letzten 30 Minuten darstellen. Die 
Datenbank sollte sich später auf einem Server befinden.
Soweit zur Aufgabenstellung, die ich mir so vorstelle.

Ich hab nun schon nen bisschen im Internet gesucht und bin auf 
verschiedene Lösungen gestoßen, so z.B. für C "ZedGraph" oder für PHP 
JpGraph. Ich wollte nun mal ne Einschätzung hören, auf welche Weise man 
das Projekt anpacken sollte. Sollte ich also eher auf C setzten oder auf 
PHP. Kann beides nicht besonders, möchte mich also bei der Einarbeitung 
am liebsten auf eines beschränken.

Hat jemand schon mal Erfahrungen mit einer solchen oder einer ähnlichen 
Aufgabenstellung gemacht?

Hydro

von Εrnst B. (ernst)


Lesenswert?

Ich würde das mit

HTML5 + Javascript

machen.

Daten per WebSocket pushen lassen oder per JSON/AJAX pollen.
(Auf Serverseite ist dann nur ein minimal-PHP nötig, um ein paar 
Datensätze auszulesen und auszugeben)

Diagramm per Canvas oder zur Not per "DIV"-Orgie erzeugen, live updaten.


Wenn's nicht ganz so live sein muss, dafür aber auch über längere 
Zeiträume:
RRDtool.

Macht auch gleich die Mysql-Datenbank überflüssig.

von Rene S. (Firma: BfEHS) (rschube)


Lesenswert?

Hallo,

ich hab mal sowas auf einem Webserver mit Perl und GD gemacht.
Also ein Perlscript holt über die MySQL Schnittstelle die Daten aus der 
DB, zeichnet mit GD das Diagram in ein Bild und zeigt es auf einer 
HTML-Seite an. Mit <meta http-equiv="refresh" content="60"> wird das 
regelmäßig aktualisiert.

Perl ist einfach, die Schnittstellen sind gut dokumentiert und einfach 
läuft überall. Obwohl ich zugebe das die modernen Sachen mit Flash 
natürlich besser aussehen. Ich mache aber solche Dinge für die 
Industrie...

Den Performance Test gegen einen Kollegen (Java-Freak) hab ich gewonnen 
;-)

mfg Rene

von Rene S. (Firma: BfEHS) (rschube)


Angehängte Dateien:

Lesenswert?

PS.: Hab sogar noch ein Bild gefunden...

von Dom (Gast)


Lesenswert?

Ich würde das ganze auch serverseitig per Skriptsprache lösen, lokal (C) 
würd ich da nicht anfangen.

Den Vorschlag von Rene Schube finde ich da eigentlich ganz sinnvoll.
Grafik mittel Script und GD erzeugen und Seite refresehen.

von Hydro (Gast)


Lesenswert?

@Rene

Genau in die Richtung habe ich mir das vorgestellt. Graphisch 
anspruchsvoll soll es nicht sein, sondern auf den Punkt bringen was 
abgefragt wurde.

Werde mich jetzt mal in Perl einlesen und sehen was ich da raus holen 
kann. Mit GD meinst du eine Grafik Library? Kenn den Begriff/das 
Programm nicht und habe nur schnell gegooglet.

Kennt ihr empfehlenswerte Tutorials in dem Gebiet (Perl, GD)? Das Web 
ist ja immer voll mit solchen, nur die hochwertigeren findet man ganz 
selten.

@Ernst

Danke für deine Antwort, aber da ich Anfänger in dem gebiet bin und das 
meine erste dieser Aufgaben ist, ich mich gar nicht in Java auskenne, 
und mir der Weg von Rene besser gefällt, verfolge ich lieber diesen.

von Εrnst B. (ernst)


Lesenswert?

Hydro schrieb:
> Danke für deine Antwort, aber da ich Anfänger in dem gebiet bin und das
> meine erste dieser Aufgaben ist, ich mich gar nicht in Java auskenne,
> und mir der Weg von Rene besser gefällt, verfolge ich lieber diesen.

Von Java schrieb ich nichts, Java*SCRIPT*. Das sind zwei paar Schuhe, 
die außer 4 Buchstaben im Namen fast nichts gemeinsam haben.

Egal.

Wenn du Serverseitig Bilder erzeugen willst, schau dir statt Perl+GD mal 
"gnuplot" an. Ist sozusagen extra für diesen Anwendungsfall geschrieben 
worden, und du hast weniger Aufwand damit, weil du nicht jede einzelne 
Linie, Tickmark, Legende, usw. per Hand kodieren mußt.

http://gnuplot.sourceforge.net/demo_4.3/

Viele Wikipedia-Diagramme sind z.B. damit erstellt worden:

http://commons.wikimedia.org/wiki/Category:Gnuplot_diagrams


Die SVG und HTML5-Canvas Optionen von Gnuplot musst du ja nicht 
verwenden, wenn dir die zu modern sind. PNG kommt da genauso raus...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.