Wikipedia:Lua/Modul/Graph

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation

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 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 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; 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 mit showSymbols 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 Option symbolsNoFill= gesetzt ist, kann mit diesem Parameter die Randdicke des Symbols gesetzt werden, Default-Wert: 2.5.
  • 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.
  • 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
  • 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.

  • Der nachstehende Abschnitt wird automatisch in jede Dokumentation zur Vorlagenprogrammierung eingebunden.

Allgemeine Hinweise zur Einbindung von Modulen

Eine Einbindung erfolgt jeweils im Format

{{#invoke: Graph | Funktionsname | Wert1 | Wert2 | NameX=Wert … }}

Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.

Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=Wert gearbeitet werden.

Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.

Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.

  1. Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
  2. Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
  3. Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.

Zu weiteren Informationen siehe Hilfe:Lua.

Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.