|
![]() |
Dokumentation
Allgemeines Einbindung des Applets in HTML-Dokumente Die Parameter Beispiele Dynamische Veränderung mit JavaScript Diagramm-Hauptseite
1 Allgemeines | [Inhalt] |
Dieses Java-Applet stellt Linien- und Balkendiagramme dar. Wenn in der
Darstellung mit der Maus auf einen Balken oder einen Linieneckpunkt geklickt
wird, wird der genaue Wert und der Name des Balkens/der Linie angezeigt.
Die im Diagramm darzustellenden Werte werden dabei als Applet-Parameter
übergeben.
2 Einbindung des Applets in HTML-Dokumente | [Inhalt] |
Wenn ein Diagramm in eine HTML-Datei eingefügt werden soll, muss wie üblich das applet-Tag verwendet werden, z.B.
<applet code="diagram.class" align="baseline" width="120" height="120"> <param name="title" value="Jahresniederschläge Dresden"> <param name="bgcolor" value="240; 240; 240"> <param name="xLabel" value="Jan.;Feb.;März;April;Mai;Juni;Juli;Aug.;Sept.;Okt.;Nov.;Dez"> . . . </applet>
Die einzubindende Datei ist diagram.class. Weitere Informationen zum Einbinden von Java-Applets finden sie z.B. bei selfhtml.
3 Die Parameter | [Inhalt] |
Struktur der Werte Die einzelnen Parameter
3.1 Struktur der Werte | [Inhalt] |
Die Werte werden folgendermaßen organisiert: Bei Linien und Balkendiagrammen gibt es eine Anzahl von Stellen auf der x-Achse an denen die Balken positioniert sind und es Punkte für die Linien gibt. Diese Stellen sind von ihrer Art meist keine Zahlen und ihre genau Position ist unerheblich und meist gleichabständig. Diesem Unstand trägt das Applet Rechnung: es werden an einer Stelle die Positionen und Namen der x-Stellen festgelegt und für die einzelnen Linien bzw. Balkengruppen werden nur die y-Werte dieser Stellen übergeben. Natürlich können Sie aber alternativ auch genaue x-Positionen angeben um ungleichverteilte Positionen anzugeben.
3.2 Die einzelnen Parameter | [Inhalt] |
Wie und welche Werte im Diagram dargestellt werden wird über die Parameter
festgelegt. Mehrere Zahlen sind innerhalb eines Parameters durch Semikolon zu
trennen. Es müssen nicht alle Parameter angegeben werden, in diesem Fall benutzt
das Applet Standardeinstellungen.
Farben werden entweder:
(Siehe dazu auch selfhtml.)
Schriftarten werden ähnlich wie bei CSS angegeben:
Parameter | Bedeutung | Erläuterung | Beispiel |
Globale Parameter | |||
title | Titel des Diagramms | Dieser Wert gibt den Titel an, der oberhalb des Diagramms angezeigt wird. | <param name="title" value="Kursschwankungen"> |
bgcolor | Hintergrundfarbe des Diagramms | Hiermit stellen Sie die Hintergrundfarbe für das gesamte Diagramm ein. Geben Sie dazu die RGB-Werte an, also 3 Zahlen zwischen 0 und 255 (für rot, grün und blau) oder wie in HTML üblich ein Gatterzeichen gefolgt von 3 Hexadezimalwerten. | <param name="bgcolor" value="255; 255; 255"> |
xlabel | Namen der x-Stellen | Geben Sie hier die Namen der x-Stellen an (durch Semikolon getrennt). | <param name="xlabel" value="Mo.;Di.;Mi"> |
x | Positionen der x-Stellen | Normalerweise werden die x-Stellen gleichabständig verteilt. Wenn sie eine abweichende Verteilung benötigen, geben Sie hier durch Semikolon getrennt die Werte an) | <param name="x" value="10; 20; 50; 100"> |
xtitle | Benennung der x-Achse | Dieser Titel wird unterhalb der x-Achse angezeigt. | <param name="xtitle" value="Wochentage"> |
ytitle | Benennung der y-Achse | Dieser Titel wird neben der y-Achse angezeigt. | <param name="ytitle" value="Besucheranzahl"> |
show_legend | Legende anzeigen | Wenn sie den Kurven Labels geben (ylabeln siehe unten), wird rechts neben dem Diagramm eine Legende dargestellt. Wenn Sie diese unterdrücken wollen, weisen Sie diesem Wert "false" zu. | <param name="show_legend" value="false"> |
show_ydescription | Teilung der y-Achse anzeigen | Normalerweise wird die y-Achse mit einer Skalenteilung angezeigt. Wenn Sie diese unterdrücken wollen, weisen Sie diesem Wert "false" zu. | <param name="show_ydescription" value="false"> |
show_ygrid | Y-Gitterlinien anzeigen | Wenn Sie diesem Wert "true" zuweisen wird das Diagramm
mit grauen horizontalen Linien hinterlegt. Diese gehen von den größeren
Teilstrichen (mit der Beschriftung) der y-Achse aus. In Kombination mit show_xgrid erhalten Sie ein Kästchenraster. |
<param name="show_ygrid" value="true"> |
show_xgrid | X-Gitterlinien anzeigen | Wenn Sie diesem Wert "true" zuweisen wird das Diagramm
mit grauen vertikalen Linien hinterlegt. Diese gehen von den beschrifteten
x-Labels aus. In Kombination mit show_ygrid erhalten Sie ein Kästchenraster. |
<param name="show_xgrid" |
precision | Präzision der Skala der y-Achse | Die Einteilung der Skala der y-Achse erfolgt automatisch. Manchmal möchte man aber eine kleinste erlaubte Einheit festlegen (z.B. ganzzahlig, oder 0,01 bei Euro), die nicht weiter unterteilt werden soll. Dazu können Sie diese kleinste Einheit einfach angeben, also z.B. "1" für ganzzahlig oder "0.01" bei Euros. | <param name="precision" value="0.1"> |
ymin | Minimaler y-Wert | Normalerweise passt sich die y-Achse den tatsächlich dargestellten y-Werten an. Durch Angabe dieses Wertes können sie das untere Ende der y-Achse fest vorgeben. Insbesondere bei "rollenden" Diagrammen ist dies sinnvoll. | <param name="ymin" value="-100"> |
ymax | Maximaler y-Wert | Normalerweise passt sich die y-Achse den tatsächlich dargestellten y-Werten an. Durch Angabe dieses Wertes können sie das obere Ende der y-Achse fest vorgeben. Insbesondere bei "rollenden" Diagrammen ist dies sinnvoll. | <param name="ymax" value="1010"> |
rolling | Rollendes Diagram | Mit diesem Wert geben sie an, wieviele x-Stellen im Diagram
angezeigt werden sollen. Z.B. können mit der JavaScript-Funktion
AddPoint neue x-Werte hinzugefügt werden. Wenn die bei
rolling angegebene Anzahl erreicht ist, werden entsprechend die "linkesten"
x-Werte aus dem Diagram geschoben. Wenn rolling nicht angegeben wird, werden einfach alle Werte dargestellt. Wenn rolling größer als die Anzahl der yn bei angegebenen Werte ist, werden die restlichen Werte freigelassen, die x-Achse wird aber in der rolling-entsprechenden Länge dargestellt. Ist rolling kleiner als die Anzahl der yn bei angegebenen Werte, werden bei yn am Anfang die überzähligen Werte nicht berücksichtigt. |
<param name="rolling" value="200;50"> |
antialiasing | Antialiasing verwenden | Durch Angabe von "true" oder "false" können sie das Antialiasing ("Smooth rendern") ein und ausschalten. Standardmäßig ist das Antialiasing aktiviert. | <param name="antialiasing" value="false"> |
xlabelSheme | Namen der x-Stellen mit Schema | Wenn nicht an allen x-Stellen auch Labels angezeigt werden
sollen, können Sie evtl. diesen Parameter benutzen; man gibt zu erst einen
Offset und dann ein Intervall an (beides Ganzzahlen und durch Semikolon
getrennt) und dann wie bei xlabel die Namen der x-Stellen an (durch Semikolon
getrennt). Beispiel: "5; 15; 3:05Uhr; 3:20Uhr; 3:35Uhr" erzeugt Label an 5. Stelle: "3:05Uhr" 20. Stelle: "3:20Uhr" 35. Stelle: "3:35Uhr" |
<param name="xlabelsheme" value="5;15; 3:05Uhr; 3:20Uhr; 3:15Uhr"> |
show_xscale | Anzeige der Skalen-Striche der x-Achse | Hier kann angegeben werden ob an allen x-Stellen auch
Skalenstriche angegeben werden sollen:
|
<param name="show_xscale" value="ATTEXT"> |
xscale | (TODO) | (TODO) Mit dieser Angabe können sie die x-Achse numerisch beschriften.
Dazu sind die 3 Werte xMin;xMax;xDelta durch Semikolon getrennt anzugeben.
xMin ist der Startwert der Beschriftung die sich bis xMax erstreckt, xDelta
gibt die Differenz zwischen 2 Beschriftungen an. |
<param name="xscale" value="-4;4;0.1"> oder z.B. einfach <param name="xscale" value="auto"> |
xlabelalign | (TODO) | (TODO) Die Ausrichtung machen Sie mit xlabelalign mit den Werten LEFT, RIGHT, CENTER
|
<param name="xlabelalign" value="LEFT"> |
xlabelangle | (TODO) | (TODO) Die Drehung kann man mit xlabelangle angeben (Winkel in Grad), mathematische Ausrichtung des Winkels. D.h. die normale Beschriftung von links nach rechts entspricht 0 Grad (DefaultWert) und "schräg nach rechts unten" entspricht 315 Grad.
|
<param name="xlabelangle" value="315"> |
zoomType | (TODO) | Verhalten der Zoom-Box beim Zoomen (speziell deren y-Ausdehnung). Mögliche
Werte:
|
<param name="zoomType" value="CUSTOM"> |
Werte für eine Linie (dem Parameter wird immer eine Zahl angehängt, die die Nummer der Linie darstellt. Die Zählung beginnt bei 0. | |||
ylabeln | Name der Linie | Hier können Sie einer Linie einen Namen zuordnen. Dieser wird angezeigt, wenn Sie Mit der Maus auf einen Linienknoten oder Balken geklickt wird. | <param name="ylabel0" value="1. Gruppe"> |
yn | y-Werte für die Linie | Geben Sie hier an, welche y-Werte die Linie an den x-Stellen annehmen kann. Die Werte sind durch Semikolon zu trennen, die Zuordnung folgt in Reihenfolge der x-Stellen. | <param name="y0" value="30;30;35;60;35"> |
colorn | Farbe der Linie | Hiermit stellen Sie die Farbe dieser Linie bzw. Balken ein.
Geben Sie dazu die RGB-Werte an, also 3 Zahlen zwischen 0 und 255 (für rot,
grün und blau) oder wie in HTML üblich ein Gatterzeichen gefolgt von 3
Hexadezimalwerten oder den Namen einer Standardfarbe (siehe oben). Wenn Sie Balken darstellen, können Sie diese auch mit einem Farbverlauf versehen: Geben Sie dazu 2 Farben an, getrennt durch "-". |
<param name="color1" value="255;0;0"> <param name="color2" value="blue"> <param name="color3" value="#909090-#FFFF00"> <param name="color4" value="orange-yellow"> |
stylen | Stil der Linie | Sie können für jede Linie zusätzliche Gestaltungsparameter
angeben:
Diese Werte können auch kombiniert werden, sie sind dann durch Leerzeichen getrennt anzugeben. |
<param name="style1" value="LINE THICK"> <param name="style2" value="BAR"> |
Schriftarten | |||
headlinefont | Schriftart der Überschrift | Hier können Sie die Schriftart für die Überschrift des Diagramms festlegen (Parameter title). Syntax der Schriftangabe siehe oben. Die Defaultschriftart ist BOLD ITALIC 14 Arial. | <param name="headlinefont" value="BOLD 16 Verdana"> |
titlefont | Schriftart der Achsenbenennungen | Hier können Sie die Schriftart für die Benennung der Achsen des Diagramms festlegen (Parameter xtitle, ytitle). Syntax der Schriftangabe siehe oben. Die Defaultschriftart ist BOLD 12 Arial. | <param name="titlefont" value="10 'Comic Sans MS'"> |
normalfont | Schriftart der restlichen Texte | Hier können Sie die Schriftart für die übrigen Texte des Diagramms festlegen (Skalen, Legende, Tooltips usw.). Syntax der Schriftangabe siehe oben. Die Defaultschriftart ist 12 Arial. | <param name="normalfont" value="10 DialogInput"> |
4 Beispiele | [Inhalt] |
Beispiel statisches Diagramm Beispiel rollendes Diagramm
Hier zwei kleine erläuterternde Beispiele.
4.1 Beispiel statisches Diagramm | [Inhalt] |
Ein Diagramm mit 3 x-Stellen und 4 Kurven/Linien.
<applet code="diagram.class" align="baseline" width="235" height="229"> <param name="title" value="Test-Diagramm"> <param name="bgcolor" value="240; 240; 240"> <param name="xlabel" value="Montag;Dienstag;Mittwoch"> <param name="xtitle" value="Woche 23"> <param name="ytitle" value="Euro"> <param name="y0" value="10; -20; 30"> <param name="color0" value="red-yellow"> <param name="style0" value="BAR"> <param name="ylabel0" value="Eisverkauf"> <param name="y1" value="15; -10; 25"> <param name="color1" value="240; 0; 0"> <param name="style1" value="LINE"> <param name="ylabel1" value="Bierstand"> <param name="y2" value="5; 20; 15"> <param name="color2" value="240; 0; 240"> <param name="style2" value="LINE PLOP"> <param name="ylabel2" value="T-Shirts"> <param name="y3" value="-15; 0; 5"> <param name="color3" value="40; 0; 240"> <param name="style3" value="LINE THICK"> <param name="ylabel3" value="Postkarten"> </applet> |
Dir Überschrift des Diagramms lautet Testdiagramm, die
Hintergrundfarbe ist Hellgrau (240,240240) und die 3 x-Stellen heißen "Montag",
"Dienstag" und "Mittwoch" und die Achsen sind mit
"Woche 23" und "Euro" beschriftet
Die 1. Linie hat an diesen Stellen
die Werte 10, -20 und 30 und ist als Balken (BAR) mit Farbverlauf rot-gelb dargestellt.
Die 2. Linie hat an den x-Stellen
die Werte 15, -10 und 25 und ist als rote (240,0,0) Linie (LINE) dargestellt.
Die 3. Linie hat an den x-Stellen
die Werte 5, 20 und 15 und ist als violette (240,0,240) Linie (LINE) mit
verstärkten Knoten (PLOP) dargestellt.
Die 4. Linie hat an den x-Stellen
die Werte -15, 0 und 5 und ist als blaue (40, 0, 240) dicke Linie (LINE THICK)
dargestellt.
4.2 Beispiel rollendes Diagramm | [Inhalt] |
Ein Diagramm bei dem per Javascript aller 0,1 Sekunden eine neue x-Stelle hinzugefügt wird. Erreichen die Kurven den rechten Rand so werden die älteren Werte links "herausgerollt".
<applet code="diagram.class" width="346" height="317" name="rollingDia" mayscript> <param name="title" value="Test-Diagramm"> <param name="bgcolor" value="#FFFFFF"> <param name="show_ygrid" value="true"> <param name="rolling" value="200"> <param name="ymax" value="100"> <param name="ymin" value="0"> <param name="show_xscale" value="atText"> <param name="xlabelSheme" value="0; 50; 0; 50;100;150;200"> <param name="ylabel0" value="Zufallskurve"> <param name="y0" value=""> <param name="color0" value="#FF0000"> <param name="style0" value="LINE"> <param name="ylabel1" value="Sinus-Kurve"> <param name="y1" value=""> <param name="color1" value="#00FF00"> <param name="style1" value="LINE THICK"> </applet>JavaScript Code: <script language="JavaScript"> var t = 0; var y0 = 50; setInterval(NeuerPunkt, 100); function NeuerPunkt() { y0 += 25*Math.random()-y0/4; var y1 = (Math.sin(t/30)*40+50); window.document.applets["rollingDia"].AddPoint(y0+";"+y1, t % 50 == 0 ? t : null, null); t++; } </script> |
Dir Überschrift des Diagramms lautet Testdiagramm, die
Hintergrundfarbe ist Hellgrau (240,240240) und die 3 x-Stellen heißen "Montag",
"Dienstag" und "Mittwoch" und die Achsen sind mit
"Woche 23" und "Euro" beschriftet
Die 1. Linie hat an diesen Stellen
die Werte 10, -20 und 30 und ist als Balken (BAR) mit Farbverlauf rot-gelb dargestellt.
Die 2. Linie hat an den x-Stellen
die Werte 15, -10 und 25 und ist als rote (240,0,0) Linie (LINE) dargestellt.
Die 3. Linie hat an den x-Stellen
die Werte 5, 20 und 15 und ist als violette (240,0,240) Linie (LINE) mit
verstärkten Knoten (PLOP) dargestellt.
Die 4. Linie hat an den x-Stellen
die Werte -15, 0 und 5 und ist als blaue (40, 0, 240) dicke Linie (LINE THICK)
dargestellt.
5 Dynamische Veränderung mit JavaScript | [Inhalt] |
Es ist auch möglich, einzelne Kurven nachträglich zu verändern oder neue Kurven "nachzuladen". Dies geschieht mit Hilfe von JavaScript. Zunächst muss durch die Angabe mayscript im Applet-Tag angegeben werden, dass das Applet mit JavaScript kommunizieren darf:
<applet name="dia" code="diagram.class" align="baseline" width="120" height="120" mayscript> <param name="title" value="Jahresniederschläge Dresden"> . . </applet>
Folgende Befehle können an das Applet geschickt werden (genaueres zur Kommunikation zwischen Applets und Javascript findet man z.B. ebenfalls bei selfhtml):
AddLine - Kurve hinzufügen
JavaSyntax: | public int AddLine(String values, String color, String style, String label) | ||||||||||||
Parameter: |
|
||||||||||||
Rückgabe-Wert: | Nummer der neuen Kurve entsprechend der internen Zählung (beginnt mit 0) | ||||||||||||
Beispiel: |
document.applet[0].Addline("10; 5; -67; 45", "#FF8967", "THICK, PLOP", "Gruppe2") oder z.B. var nr = dia.Addline(a.join(';'), 'yellow-green', 'BAR', currentName); |
RemoveLine - Kurve löschen
JavaSyntax: | public int RemoveLine(int nr) | |||
Parameter: |
|
|||
Rückgabe-Wert: | Anzahl der verbleibenden Kurven bzw. -1 bei ungültigem nr | |||
Beispiel: |
document.applet[0].RemoveLine(5); oder z.B. nKurven = dia.RemoveLine(iDelete); |
SetLine - Kurve modifizieren
JavaSyntax: | public int SetLine(int nr, String values, String color, String style, String label) | |||||||||||||||
Parameter: |
|
|||||||||||||||
Rückgabe-Wert: | Nummer der Kurve entsprechend der internen Zählung (beginnt mit 0), also im Normalfall nr | |||||||||||||||
Beispiel: |
document.applet[0].SetLine(0, "10; 5; -67; 45", "#FF8967", "THICK, PLOP", "Gruppe2") oder z.B. var nr = dia.SetLine(i, a.join(';'), 'yellow-green', 'BAR', currentName); |
AddPoint - fügt bei den Kurve einen neuen x-Wert hinzu
Wenn der Applet-Parameter rolling agegeben ist, bleibt dabei die Anzahl der X-Werte dabei konstant. Die Kurven "wandern" mit jedem AddPoint bis an den rechten Rand und wenn sie ihn erreichen werten die "älteren" Werte dabei leins aus dem Diagramm geschoben.
JavaSyntax: | public int AddPoint(String values, String xlabel, String xvalue) | |||||||||
Parameter: |
|
|||||||||
Rückgabe-Wert: | Index des neuen Wertes | |||||||||
Beispiel: |
document.applet[0].Addpoint("3.25; 5.676; -36", "Versuch 23") oder z.B. var ixLastnr = dia.Addpoint(yNeu.join(';'), xNeuName, xNeu); |
SetYMin - setzt den minimalen y-Wert
Diese Funktion entspricht dem Applet-Parameter ymin. Wenn z.B. mit AddLine eine neue Kurve hizugekommen ist, möchte man evtl. den minimalen y-Wert anpassen.
JavaSyntax: | public void SetYMin(String ymin) | |||
Parameter: |
|
|||
Rückgabe-Wert: | keiner | |||
Beispiel: |
document.applet[0].SetYMin("-20.5") oder z.B. dia.SetYMin(yMinNeu); |
SetYMax - setzt den maximalen y-Wert
Diese Funktion entspricht dem Applet-Parameter ymax. Wenn z.B. mit AddLine eine neue Kurve hizugekommen ist, möchte man evtl. den maximalen y-Wert anpassen.
JavaSyntax: | public void SetYMax(String ymax) | |||
Parameter: |
|
|||
Rückgabe-Wert: | keiner | |||
Beispiel: |
document.applet[0].SetYMax("100") oder z.B. dia.SetYMax(yMaxNeu); |
SetRolling - setzt die Anzahl der x-Werte
Dese Funktion entspricht dem Applet-Parameter rolling. Wenn z.B. den Applet-Inhalt komplett mit SetLine umschaltet, möchte man evtl. die Anzahl der x-Werte anpassen.
JavaSyntax: | public void SetRolling(int rolling) | |||
Parameter: |
|
|||
Rückgabe-Wert: | keiner | |||
Beispiel: |
document.applet[0].SetRolling("100") oder z.B. dia.SetRolling(nZoom); |
SetXLabel - Texte der x-Werte neu setzen
Diese Funktion entspricht dem Applet-Parameter xlabel. Die alte xLabels werden dabei vorher komplett gelöscht.
JavaSyntax: | public void SetXLabel(String xlabel) | |||
Parameter: |
|
|||
Rückgabe-Wert: | keiner | |||
Beispiel: |
document.applet[0].SetXLabel("Montag;Dienstag;Mittwoch;Donerstag;Freitag") oder z.B. dia.SetXLabel(labelsNeu.join(";")); |
SetXLabelSheme - Texte der x-Werte neu setzen (erweitert)
Diese Funktion entspricht dem Applet-Parameter xlabelSheme. Die alte xLabels werden dabei nicht komplett gelöscht, d.h. Sie können SetXLabelSheme auch mehrfach hintereinander aufrufen und somit die X-Achse schrittweise anreichern.
JavaSyntax: | public void SetXLabelSheme(int offset, int interval, String xlabel) | |||||||||
Parameter: |
|
|||||||||
Rückgabe-Wert: | keiner | |||||||||
Beispiel: |
document.applet[0].SetXLabelSheme(0, 10, "Montag;Dienstag;Mittwoch;Donerstag;Freitag") oder z.B. dia.SetXLabel(13, 50, labelsNeu.join(";")); |
SetXScale - setzt den maximalen y-Wert
Diese Funktion entspricht dem Applet-Parameter xscale. Damit können sie die numerische Beschriftung der x-Achse ändern.
JavaSyntax: | public void SetYMax(String xMin, String xMax, String xDelta) | |||||||||
Parameter: |
|
|||||||||
Rückgabe-Wert: | keiner | |||||||||
Beispiel: |
document.applet[0].SetXScale("-4", "4", "0.1") oder z.B. dia.SetXScale(null, null, "auto"); |
Viel Spaß !
Links: Diagram-Hauptseite Projekte | Originalquelle im WEB: http://linus.psych.tu-dresden.de/StuPla/diagram/doc/diagram.htm |