ÖsterreichWiki:Lua/Modul/Graph/de: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
K (Textersetzung - „Kategorie:Regiowiki:“ durch „Kategorie:ÖsterreichWiki:“) |
||
(59 dazwischenliegende Versionen von 13 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
< | {{LuaModuleDoc}} | ||
<onlyinclude> | |||
{{#if:{{{1|}}}||Modul mit Hilfsfunktionen für die [[Hilfe:Graph|Graph]]-Erweiterung. | |||
== Funktionen für Vorlagen == | == Funktionen für Vorlagen == | ||
=== < | === <span style="font-family:monospace; font-size:1.3em;">map</span> === | ||
</ | Erstellt ein JSON-Objekt für <code><nowiki><graph></nowiki></code> zur Darstellung einer politischen Karte mit farbigen Markierungen. Im Artikelnamensraum sollte die Vorlage {{Vorlage|Graph:Map}} genutzt werden. Siehe dort auch für Anwendungsbeispiele. | ||
{{#ifeq:{{{1|map}}}|map| | |||
Erstellt ein JSON-Objekt zur Darstellung | Karten finden sich unter [[Spezial:Präfixindex/Modul:Graph/]] (beispielsweise [[Modul:Graph/WorldMap-iso2.json|WorldMap-iso2.json]] mit allen Staatsgrenzen) und weitere sollten, daher ebenfalls unter Modul:Graph/ angelegt werden. | ||
'''Parameter:''' | |||
}}{{#ifeq:{{{1|map}}}|map| | |||
* '''basemap:''' gibt an, welche Basiskarte verwendet werden soll. Die Kartendefinition muss im [https://github.com/mbostock/topojson/wiki 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 [[Modul:Graph/WorldMap-iso2.json|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 <code>//en.wikipedia.org/w/index.php?title=''Mapname''&action=raw</code> 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 <code>equirectangular</code> für eine [[Rektangularprojektion]] (Plattkarte). | |||
* '''center:''' Kartenmitte (in den Kartendaten die beide kommagetrennten Werte im <code>scale</code>-Feld) | |||
* '''feature:''' welche geographischen Objekte sollen angezeigt werden (in den Kartendaten der Name des Feldes unter dem <code>objects</code>-Feld). Der Standardwert ist <code>countries</code>. | |||
* '''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ändercode]]s (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: <code>DE=lightblue</code> würde auf der Karte Deutschland hellblau färben, <code>DE=80.6</code> 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 <code>#rgb</code>/<code>#rrggbb</code> oder mit einem [[Webfarbe#Benannte Farben|CSS-Farbnamen]] erfolgen. Statt einer Liste können auch die eingebauten Farbpaletten [https://github.com/mbostock/d3/wiki/Ordinal-Scales#categorical-colors <span style="font-family:monospace; font-size:1.3em;">category10</span> und <span style="font-family:monospace; font-size:1.3em;">category20</span>] genutzt werden. | |||
* '''scaleType:''' mögliche Werte <code>linear</code> für eine lineare Abbildung zwischen den Datenwerten und der Farbskala, <code>log</code> für eine logarithmische, <code>pow</code> für eine exponentielle (der Exponent kann dahintergesetzt werden, z. B. <code>pow 0.5</code>), <code>sqrt</code> und <code>quantize</code> 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 <code>quantize</code>) | |||
* '''defaultValue:''' Standardwert für unmarkierte geografische Objekte. Wenn die Datenwerte Farben sind, ist der Standandwert <code>silver</code>, bei Zahlen 0. | |||
}}{{#if:{{{1|}}}|| | |||
* '''formatjson:''' JSON-Objekt für bessere Lesbarkeit formatieren | |||
=== <span style="font-family:monospace; font-size:1.3em;">chart</span> === | |||
Erstellt ein JSON-Objekt für <code><nowiki><graph></nowiki></code> zur Darstellung von Diagrammen. Im Artikelnamensraum sollte die Vorlage {{Vorlage|Graph:Chart}} genutzt werden. Siehe dort auch für Anwendungsbeispiele. | |||
'''Parameter:''' | '''Parameter:''' | ||
* ''' | }}{{#ifeq:{{{1|chart}}}|chart| | ||
* '''width:''' Breite des Diagramms | |||
* ''' | * '''height:''' Höhe des Diagramms | ||
* ''' | * '''type:''' Diagrammtyp: <code>line</code> für [[Liniendiagramm]]e, <code>area</code> für [[Flächendiagramm]]e, <code>rect</code> für [[Säulendiagramm]]e und <code>pie</code> für [[Kreisdiagramm]]e (Tortendiagramme). Mit dem Präfix <code>stacked</code> (z. B. <code>stackedarea</code>) können mehrere Serien gestapelt werden. | ||
* '''interpolate:''' [[Interpolation (Mathematik)|Interpolations]]-Methode für Linien- und Flächendiagramme. Empfohlen ist <code>monotone</code> – 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 <code>#rgb</code>/<code>#rrggbb</code>/<code>#aarrggbb</code> oder mit einem [[Webfarbe#Benannte Farben|CSS-Farbnamen]] angegeben. Bei <code>#aarrggbb</code> bezeichnet <code>aa</code> den [[Alphakanal]], d. h. FF=100% Deckkraft, 80=50% Deckkraft/halbdurchsichtig, usw. (Die Standardpalette ist [https://github.com/mbostock/d3/wiki/Ordinal-Scales#categorical-colors <span style="font-family:monospace; font-size:1.3em;">category10.</span>]) | ||
* | * '''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 <code>%</code> genutzt werden, während <code>d</code> [[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 <code>log</code> 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. <code>integer</code> für Ganzzahlen, <code>number</code> für reelle Zahlen, <code>date</code> für Datumsangaben (z. B. im Format <code>JJJJ/MM/TT</code>) und <code>string</code> für beliebige Ordinalwerte. | |||
* '''x:''' X-Werte als kommagetrennte Liste (wenn ein x-Wert selbst ein Komma enthält, muss dieses mit einem Backslash [[Escape-Sequenz#In_C_und_verwandten_Programmiersprachen|escapet]] werden, d.h. es muss stattdessen <code>\,</code> verwendet werden) | |||
* '''y''' bzw. '''y1, y2,''' …: Y-Werte von einer bzw. mehreren Datenreihen. Bei Kreisdiagrammen gibt <code>y2</code> 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:''' <code>showSymbols=1</code>. | |||
* '''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 <code>Name1:Wert1, Name2:Wert2</code>: | |||
** '''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 Kreisdiagramme (mit <code>midangle</code>-Winkelwert) gibt dies auch an, ob der Text inner- oder außerhalb der Diagrammgrafiken geschrieben wird. | |||
** '''angle''' (nur Kreisdiagramme): Winkel in Grad oder <code>midangle</code> (Standard) für dynamischen Winkel basierend auf dem Winkel des Kreisstücks. | |||
* '''innerRadius:''' innerer Radius, um aus einem Kreisdiagramm ein ''Ringdiagramm'' zu erzeugen. | |||
}}{{#if:{{{1|}}}|| | |||
* '''formatjson:''' JSON-Objekt für bessere Lesbarkeit zu Debuggingzwecken formatieren. | |||
=== Vorlagenwrapper === | |||
Die Funktionen <code>mapWrapper</code> und <code>chartWrapper</code> dienen lediglich dazu, alle Parameter einer aufrufenden Vorlage an die entsprechenden Funktionen <code>map</code> und <code>chart</code> durchzureichen, so dass die Vorlage selbst keine Parameterzuordnung vornehmen muss. | |||
}} | }} | ||
'''Hinweis:''' In der Vorschau erzeugt die Graph-Funktion ein [[Canvas (HTML-Element)|Canvas]]-Element mit einer Vektorgrafik. Beim Abspeichern wird daraus jedoch eine [[Portable Network Graphics|PNG]]-Datei erzeugt. | |||
= | |||
< | '''Für Entwickler:''' Neue Funktionen können im [https://vega.github.io/vega-editor/index.html?mode=vega Vega Editor] ausprobiert werden, der auch eine Vielzahl von Beispielcodes enthält. | ||
<includeonly>{{Kasten|1= | |||
}} | <!-- * Zur Dokumentation siehe oben den Link „Deutsch“. --> | ||
* Der nachstehende Abschnitt wird automatisch in jede Dokumentation zur Vorlagenprogrammierung eingebunden. | |||
}}</includeonly></onlyinclude> | |||
[[Kategorie:ÖsterreichWiki:Lua]] | |||
Aktuelle Version vom 22. Oktober 2024, 10:38 Uhr
expandTemplate: template "Regiowiki:Lua/Modul-Navigationsfehler" does not exist
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ährendd
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 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
- 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
:- 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 Kreisdiagramme (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.
- 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.