Liniendiagramm aus MySQL Datenbank

Gast #2188993
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
#2189015
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.
(Firma: BfEHS) #2189021
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
Gast #2189060
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.
Gast #2189134
@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.
#2189148
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...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.