Wikiversity:Lua/Modul/Graph/de

Aus Wikiversity

Vorlage:LuaModuleDoc


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 ist countries.
  • 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 und quantize 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 und pie für Kreisdiagramme (Tortendiagramme). Mit dem Präfix stacked (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 bezeichnet aa 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 verhindert (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
  • 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 Format JJJJ/MM/TT) und string 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
  • showSymbols: Fügt Symbole zur Datenpunkt-Markierung ein. Im Moment sind nur kreisrunde Punkte möglich. Beispiel: showSymbols=1.
  • 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:
  • innerRadius: innerer Radius, um aus einem Kreisdiagramm ein Ringdiagramm zu erzeugen.
  • 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.