HuskyWiki:Lua/Modul/Graph/de
Modul mit Hilfsfunktionen für die Graph-Erweiterung.
Funktionen für Vorlagen
map
Erstellt ein JSON-Objekt für <graph>
zur Darstellung einer politischen Karte mit farbigen Markierungen. Im Artikelnamensraum sollte die Vorlage {{Graph:Map}} genutzt werden. Siehe dort auch für Anwendungsbeispiele.
Karten finden sich unter Spezial:Präfixindex/Modul:Graph/ (beispielsweise WorldMap-iso2.json mit allen Staatsgrenzen) und weitere sollten daher ebenfalls unter Modul:Graph/ angelegt werden.
Parameter:
- basemap: gibt an, welche Basiskarte verwendet werden soll. Die Kartendefinition muss im TopoJSON-Format erfolgen, dann auf Wikipedia abgelegt werden, wo sie fortan zur Verfügung für dieses Modul steht. Karten im Standardverzeichnis Spezial:Präfixindex/Modul:Graph/ wie WorldMap-iso2.json sollten nur mit ihrem Namen referenziert und der Präfix „Modul:Graph/“ der Portierbarkeit wegen weggelassen werden. Daneben werden auch URLs akzeptiert, z. B. wenn Karten von anderen Wikipedia-Sprachversionen genutzt werden sollen (die Angabe sollte hierbei als
//en.wikipedia.org/w/index.php?title=Mapname&action=raw
erfolgen, d. h. protokollrelativ ohne http/s am Anfang und mit action=raw, um ausschließlich den Seiteninhalt zurückzugeben). URLs auf Karten von externen Websites sollten aus Gründen der Stabilität, Performanz und Sicherheit nicht genutzt werden bzw. würden von der Software oder dem Browser vermutlich geblockt werden. - scale: Skalierungsfaktor der Karte (Standard: 100)
- projection: Methode der Kartenprojektion. Mögliche Werte dafür siehe unter https://github.com/mbostock/d3/wiki/Geo-Projections. Der Standardwert ist
equirectangular
für eine Rektangularprojektion (Plattkarte). - center: Kartenmitte (in den Kartendaten die beide kommagetrennten Werte im
scale
-Feld) - feature: welche geographischen Objekte sollen angezeigt werden (in den Kartendaten der Name des Feldes unter dem
objects
-Feld). Der Standardwert istcountries
. - IDs der geografischen Objekte: Diese Parameter hängen von der genutzten Basiskarte und dem ausgewählten feature ab. In der vorher genannten Beispielkarte sind dies zweistellige ISO-Ländercodes (bei dieser ist jedoch zu beachten, dass für Gebiete, die nicht von der ISO-3166-1 abgedeckt sind, folgende IDs zu verwenden sind: "KOSOVO", "NORTHERN_CYPRUS", "SOMALILAND"). Der Wert kann entweder eine Farbangabe sein oder eine Zahl, falls den einzelnen geografischen Objekten Daten zugeordnet werden sollen:
DE=lightblue
würde auf der Karte Deutschland hellblau färben,DE=80.6
würde Deutschland den Wert 80.6 (hier die Bevölkerungszahl in Millionen) zuordnen. Die konkrete Färbung ergibt sich dann aus den folgenden Parametern. - colorScale: zu verwendende Farbpalette. Das Format ist eine kommagetrennte Liste von Farbwerten. Die Farbwerte müssen entweder im Format
#rgb
/#rrggbb
oder mit einem CSS-Farbnamen erfolgen. Statt einer Liste können auch die eingebauten Farbpaletten category10 und category20 genutzt werden. - scaleType: mögliche Werte
linear
für eine lineare Abbildung zwischen den Datenwerten und der Farbskala,log
für eine logarithmische,pow
für eine exponentielle (der Exponent kann dahintergesetzt werden, z. B.pow 0.5
),sqrt
undquantize
für eine quantisierte Skala, d. h. die Werte werden in so viele Klassen eingeteilt, wie die Palette Farben hat, und diese dann genutzt. - domainMin: Skalenminimum, d. h. Datenwerte unter dem Minimum werden diesem zugeordnet
- domainMax: Skalenmaximum, d. h. Datenwerte über dem Maximum werden diesem zugeordnet
- legend: Farblegende anzeigen (funktioniert nicht bei
quantize
) - defaultValue: Standardwert für unmarkierte geografische Objekte. Wenn die Datenwerte Farben sind, ist der Standandwert
silver
, bei Zahlen 0. - formatjson: JSON-Objekt für bessere Lesbarkeit formatieren
chart
Erstellt ein JSON-Objekt für <graph>
zur Darstellung von Diagrammen. Im Artikelnamensraum sollte die Vorlage {{Graph:Chart}} genutzt werden. Siehe dort auch für Anwendungsbeispiele.
Parameter:
- width: Breite des Diagramms
- height: Höhe des Diagramms
- type: Diagrammtyp:
line
für Liniendiagramme,area
für Flächendiagramme,rect
für Säulendiagramme undpie
für Kreisdiagramme (Tortendiagramme). Mit dem Präfixstacked
(z. B.stackedarea
) können mehrere Serien gestapelt werden. - interpolate: Interpolations-Methode für Linien- und Flächendiagramme. Empfohlen ist
monotone
– weitere Werte lassen sich https://github.com/vega/vega/wiki/Marks#area entnehmen. - colors: Farbpalette des Diagramms als kommagetrennte Liste von Farbwerten. Farbwerte werden im Format
#rgb
/#rrggbb
/#aarrggbb
oder mit einem CSS-Farbnamen angegeben. Bei#aarrggbb
bezeichnetaa
den Alphakanal, d. h. FF=100% Deckkraft, 80=50% Deckkraft/halbdurchsichtig, usw. (Die Standardpalette ist category10.) - xAxisTitle und yAxisTitle: Beschriftung der X- und Y-Achse
- xAxisMin, xAxisMax, yAxisMin und yAxisMax: ändert den Start- und Endwert der X- bzw. Y-Achse
- xAxisFormat und yAxisFormat: ändert die Formatierungen der Achsenbezeichnungen. Um beispielsweise Prozentzahlen auszugeben, kann das Format
%
genutzt werden, während,d
Tausendertrennzeichen einschaltet (https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#numbers für Zahlen und https://github.com/d3/d3-3.x-api-reference/blob/master/Time-Formatting.md für Zeitangaben). - xAxisAngle: Dreht die x-Achsenbezeichnungen um den angegebenen Winkel. Sinnvolle Werte sind: -45, +45, -90, +90
- xGrid und yGrid: Anzeige von Gitternetzlinien ja/nein
- xScaleType und yScaleType: Ändert die Skalierung der betreffenden Achse. Wenn der Parameter auf
log
gesetzt wird, erscheint die Achse mit logarithmischer Skalierung. Man sollte den Startwert dieser Achse dann nicht auf 0 setzen. (Weitere erlaubte Werte sind unter https://vega.github.io/vega/docs/scales/#types aufgeführt, diese wurden jedoch noch nicht getestet.) - xType und yType: Datentypen der Werte, z. B.
integer
für Ganzzahlen,number
für reelle Zahlen,date
für Datumsangaben (z. B. im FormatJJJJ/MM/TT
) undstring
für beliebige Ordinalwerte. - x: X-Werte als kommagetrennte Liste (wenn ein x-Wert selbst ein Komma enthält, muss dieses mit einem Backslash escapet werden, d. h. es muss stattdessen
\,
verwendet werden) - y bzw. y1, y2, …: Y-Werte von einer bzw. mehreren Datenreihen. Bei Kreisdiagrammen gibt
y2
die Radien der entsprechenden Kreisstücke an. - legend: Legende mit angegebenen Legendentitel anzeigen (funktioniert nur bei mehreren Datenreihen). Für Alternativen siehe Wikipedia:Farbe#Vorlagen.
- y1Title, y2Title, …: Bezeichnung der jeweiligen Datenreihe in der Legende
- linewidth: Liniendicke bei Liniendiagrammen bzw. Abstand zwischen den Kreisstücken bei Kreisdiagrammen; bei mehreren Datenreihen können durch Komma separiert mehrere verschiedene Werte angegeben werden, z. B.
linewidth=1, 2.3, 6
. Wird der Wert für eine Datenreihe auf 0 gesetzt, können mitshowSymbols
die reinen Datenpunkte angezeigt werden. - Darstellung der Datenpunkte:
- showSymbols: Fügt Symbole zur Datenpunkt-Markierung ein. Wenn eine Zahl angegeben wird, wird sie als Skalierungsfaktor interpretiert, wobei 2,5 der Default-Wert ist. Wie bei
linewidth
können unterschiedliche werte für die Datenreihen angegeben werden. Beispiel:showSymbols=1, 2, 3, 4
. - symbolsShape: Symbol der Datenpunkt-Markierung. Mögliche Werte sind unter anderem: circle, x, square, cross, diamond, triangle_up, triangle_down, triangle_right, triangle_left, banana. Wie bei
linewidth
können unterschiedliche Werte für die Datenreihen angegeben werden. Beispiel:symbolsShape=circle, cross, square
- symbolsNoFill: wenn der Parameter gesetzt wird, wird das Symbol der Datenpunkt-Markierung nicht ausgefüllt, sondern nur der Rand des Symbols angezeigt.
- symbolsStroke: Wenn
symbolsShape=x
oder die OptionsymbolsNoFill=
gesetzt ist, kann mit diesem Parameter die Randdicke des Symbols gesetzt werden, Default-Wert: 2.5.
- showSymbols: Fügt Symbole zur Datenpunkt-Markierung ein. Wenn eine Zahl angegeben wird, wird sie als Skalierungsfaktor interpretiert, wobei 2,5 der Default-Wert ist. Wie bei
- showValues: gibt die Y-Werte zusätzlich als Text aus. (Wird momentan nur von (nicht gestapelten) Säulen- und Kreisdiagrammen unterstützt.) Die Ausgabe kann über folgende Parameter konfiguriert werden, die angegeben werden als
Name1:Wert1, Name2:Wert2
:- format: formatiert die Werteausgabe gemäß https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#numbers für Zahlen und https://github.com/d3/d3-3.x-api-reference/blob/master/Time-Formatting.md für Zeitangaben
- fontcolor: Textfarbe
- fontsize: Textgröße
- offset: verschiebt den Text gemäß dem angegebenen Offset. Bei Säulen- und Kreisdiagrammen (mit
midangle
-Winkelwert) gibt dies auch an, ob der Text inner- oder außerhalb der Diagrammgrafiken geschrieben wird. - angle (nur Kreisdiagramme): Winkel in Grad oder
midangle
(Standard) für dynamischen Winkel basierend auf dem Winkel des Kreisstücks.
- innerRadius: innerer Radius, um aus einem Kreisdiagramm ein Ringdiagramm zu erzeugen.
- Annotations
- vAnnotationsLine and hAnnotationsLine: display vertical or horizontal annotation lines on specific values e.g.
hAnnotationsLine=4, 5, 6
- vAnnotationsLabel and hAnnotationsLabel: display vertical or horizontal annotation labels for lines e.g.
hAnnotationLabel = label1, label2, label3
- vAnnotationsLine and hAnnotationsLine: display vertical or horizontal annotation lines on specific values e.g.
- formatjson: JSON-Objekt für bessere Lesbarkeit zu Debuggingzwecken formatieren.
Vorlagenwrapper
Die Funktionen mapWrapper
und chartWrapper
dienen lediglich dazu, alle Parameter einer aufrufenden Vorlage an die entsprechenden Funktionen map
und chart
durchzureichen, so dass die Vorlage selbst keine Parameterzuordnung vornehmen muss.
Hinweis: In der Vorschau erzeugt die Graph-Funktion ein Canvas-Element mit einer Vektorgrafik. Beim Abspeichern wird daraus jedoch eine PNG-Datei erzeugt.
Für Entwickler: Neue Funktionen können im Vega Editor ausprobiert werden, der auch eine Vielzahl von Beispielcodes enthält.