Extension:Graph/cs

Rozšířeníení Graph umožňuje značce popisující vizualizace dat, jako jsou sloupcové grafy, koláčové grafy, časové osy a histogramy (demo) ve formátu JSON, který vykresluje Vega-základy grafu.



Základní informace
Rozšíření grafu umožňuje přidání výkonných grafů na Wiki založených na vega. Grafy mohou být interaktivní.

Nejjednodušší způsob, jak přidat graf, je použít připravenou šablonu, jako je. Tyto šablony skrývají všechny složitosti Vega. Výkonní uživatelé mohou používat k vývoji grafů pískoviště Graph Sandbox. Sandbox Graph umožňuje kromě JSON syntaxi šablon wiki. The extension integrates with VisualEditor, providing a simple tool/wizard which generates basic graphs, by entering values directly to the editor.



Užitečné odkazy

 * Dokumentace Vega 2 - obnovené stránky dokumentace Vega 2.
 * – Obecná doporučení, jak používat grafy ve Wiki.
 * – pokyny, jak od začátku vytvořit komplexní interaktivní graf, krok za krokem
 * - pro mnoho ukázek a triků k použití.
 * TechTalk Video – technická přednáška WMF pojednávající o rozšíření Graph, včetně skvělé ukázky editoru Lyra (také nainstalovaného v laboratořích).
 * Také by vás mohly zajímat některé z budoucích schopností Vega (Keynote od Jeffreyho Heera).
 * Vega pro vývojáře – nejlepší místo ze všech zdrojů Vega
 * Úvodní video do interaktivní Vega
 * Úvodní video do interaktivní Vega

Instalace


Další nastavení konfigurace
Pokud chcete replikovat produkční prostředí, jako je en.wiki, budete muset provést následující kroky:

Role (pouze pokud jste se rozhodli použít Vagrant)


 * Povolit roli grafů
 * Povolit roli autora
 * Povolit roli obrázkové mapy

Šablony a moduly Lua


 * Lokálně zkopírujte Module:Graph
 * Lokálně zkopírujte Module:Graph/doc
 * Lokálně zkopírujte Template:Nowrap
 * Copy Template:Nowrap/styles.csslocally
 * Lokálně zkopírujte Module:Chart
 * Lokálně zkopírujte Module:Chart/Default_colors
 * Lokálně zkopírujte File:Circle_frame.svg



Příklady grafů
Viz - pro mnoho ukázek a triků k použití.



Uživatelsky definované záložní řešení
Při použití vykreslování na straně klienta je možné použít Wikimedia Commons k poskytnutí statického záložního obrázku uživatelům. Toto je dočasné řešení, dokud nebude zavedena nová služba poskytující vykreslování na straně serveru.

Uživatel musí nejprve nahrát statický graf na Wikimedia Commons.

Záložní obrázky mají dvě proměnné  a.

se vztahuje k souboru Wikimedia Commons.

je šířka záložních obrázků v pixelech.

Tyto proměnné se zadávají do grafu následujícím způsobem:

Tam, kde se používají moduly Lua, jako je Module:Graph, lze tyto proměnné poskytnout pomocí funkce značky. Pokud by byl upraven, vypadalo by to takto:

Poté by byl použit v šabloně následujícím způsobem:

Pokud není zadán fallbackWidth, ale je definován obrázek, rozšíření odvodí šířku z poskytnuté šířky grafu. Důvodem je často rozdíl v šířce vykresleného obrazu a skutečné šířce obrazu.



Externí data
Protokol HTTP(S) nelze použít k získání dat pro graf. Místo toho použijte jeden z vlastních wiki protokolů jako,   a další.

Rozšíření Graph používá nastavení  k ovládání způsobu řešení těchto protokolů: Note that because queries rely on the structure of wikibase items, they may suddenly stop working if the underlying data is edited and changes, as it may yield incomplete, empty or invalid data that can't be used to create a graph. In these cases the graph will end up empty (see T168601).



Známé chyby a omezení

 * tag/graph - chyby rozšíření Graph
 * Nepodařilo se implementovat časové osy ISO 8601, takže v časových osách lze použít pouze gregoriánské kalendáře

Vnitřní části
Při analýze rozšiřuje rozšíření Graph všechny parametry/výrazy šablony a ukládá úplné definice grafu do ParserOutput pomocí hash grafů pro ID.

Rozšíření Graph přidá HTML na stránku, kde by měly být grafy, s graph-id jako atributem. Ukázka:

Rozšíření Graph přidá na stránku modul JavaScriptu  ResourceLoader, který obsahuje knihovnu Vega, a vloží JSON definic grafů do proměnné JavaScriptu   s názvem. Jakmile klient nahraje tento modul, knihovna Vega JavaScript naplní každý plátnem HTML a nakreslí do něj graf, čímž nahradí statický obrázek.



Bezpečnostní prvky
lze nakonfigurovat tak, aby zakázal odkazování na nedůvěryhodné zdroje dat (např. Wikimedie povoluje pouze data ze stránek Wikimedie).

Licence
Knihovna Vega je distribuována pod licencí upravené licence BSD, která je pro nás přijatelná k použití.

Zdá se, že se jedná o kopii BSD licence s některými menšími (přijatelnými) úpravami. Není pro nás problém to použít, i když v ideálním případě bychom takové změny v licenci neprováděli. Je lepší, když lidé tyto změny ve své licenci neprovádějí, aby se předešlo nejasnostem (jako je tato), zda je licence bezpečná pro použití s otevřeným zdrojovým kódem.

wgGraphAllowedDomains
Viz část o externích datech.



Ostatní proměnné

 * 2015 - wgGraphUrlBlacklist byl odstraněn z 787d64a11.
 * 2016 - wgGraphDataDomains byl odstraněn z e0813f85a. Použijte místo toho wgGraphAllowedDomains.
 * 2015 - wgGraphUserServiceAlways byl odstraněn z b735f63ff4b.
 * 2019 - wgGraphIsTrusted byl odstraněn z cf80f43e15.
 * 2020 - $wgGraphImgServiceUrl byl ukončen.



Povolení jmenného prostoru Graph
To store graph definitions as standalone pages in their own namespace, configure.

VisualEditor module
Since summer 2015, the Graph extension also comes with a module (ext.graph.VisualEditor) which enables graph editing within VisualEditor.

This module was a result of a Google Summer of Code 2015 project. See T89287 for more details.

This module allows users to see graphs within VisualEditor, as opposed to alien extension nodes. Furthermore, users can open up a dialog to edit a graph's type, data and padding. The UI also offers a way to edit a graph's raw JSON specification within VE without having to switch to the classic wikitext editor, in case more advanced users want to tweak settings not supported by the UI.

This first step serves as a stepping stone for many possibilities with graph editing within VisualEditor, and there are a lot of ways in which the module can be improved and expanded.

Troubleshooting broken graphs
Errors with graphs will be logged in the developer console.

Error: Bad constructor arguments (T277906)
To fix: Replace filepath:Earthmap1000x500compac.jpg with filepath:Earthmap1000x500.jpg

Example.

TypeError: undefined is not an object (evaluating 'datum.firstYear.value')
To fix: Make sure you have not set default as null

Example.