Rozšíření:Graph
![]() Stav rozšíření: stabilní |
|
---|---|
Zavádění | Tag , ContentHandler |
Popis | Grafy založené na datech |
Napsal(i) | |
MediaWiki | >= 1.40.0 |
Licence | Licence MIT |
Zdrojový kód | |
|
|
Čtvrtletní stahování | 175 (Ranked 60th) |
Používání veřejných wikin | 884 (Ranked 279th) |
Přeložte rozšíření Graph, používá-li lokalizaci z translatewiki.net | |
Problémy | Otevřené úkoly · Nahlásit chybu |
Rozšířeníení Graph umožňuje značce <graph>
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 {{Graph:Chart}}. 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.
- Průvodce – Obecná doporučení, jak používat grafy ve Wiki.
- Interaktivní výukový program – pokyny, jak od začátku vytvořit komplexní interaktivní graf, krok za krokem
- Ukázková stránka - 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 [1] (Keynote od Jeffreyho Heera).
- Vega pro vývojáře – nejlepší místo ze všech zdrojů Vega
- Migrace na Vega 2.0
- Úvodní video do interaktivní Vega
Instalace
- Vyžaduje rozšíření JsonConfig
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
Graph
ve vaší složceextensions/
. - Následující kód přidejte na konec vašeho souboru
LocalSettings.php
:wfLoadExtension( 'Graph' );
- Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Instalace Vagrant:
- Pokud používáte Vagrant , instalujte s těmito parametry
vagrant roles enable graph --provision
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.css locally
- 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 stránka ukázek - 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 noscript
.
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é fallback
a fallbackWidth
.
fallback
se vztahuje k souboru Wikimedia Commons.
fallbackWidth
je šířka záložních obrázků v pixelech.
Tyto proměnné se zadávají do grafu následujícím způsobem:
<graph fallback="Graph test seddon.png" fallbackWidth=450>
Tam, kde se používají moduly Lua, jako je Module:Graph, lze tyto proměnné poskytnout pomocí funkce značky. Pokud by byl upraven Template:Graph:Chart , vypadalo by to takto:
{{safesubst:#tag:graph|{{safesubst:#invoke:Graph|chartWrapper}} | fallback = {{{fallback|''}}} | fallbackWidth= {{{fallbackWidth|''}}} }}
Poté by byl použit v šabloně následujícím způsobem:
{{Graph:Chart|width=400|height=100|xAxisTitle=X|yAxisTitle=Y
|type=rect|x=1,2,3,4,5,6,7,8|y=10,12,6,14,2,10,7,9|fallback=Graph test seddon.png|fallbackWidth=450}}
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.
{{Graph:Chart|width=400|height=100|xAxisTitle=X|yAxisTitle=Y
|type=rect|x=1,2,3,4,5,6,7,8|y=10,12,6,14,2,10,7,9|fallback=Graph test seddon.png}}
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 wikiraw:
, wikiapi:
a další.
Rozšíření Graph používá nastavení GraphAllowedDomains
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 phab:T168601).
$wgGraphAllowedDomains = [
# Klíče http + https uvádí všechny domény povolené pro externí přístup k datům.
# Jakákoli zde uvedená doména automaticky povoluje také všechny subdomény.
# Vlastní protokoly jako 'wikiraw' jej používají k určení, který protokol použít.
# Tímto způsobem bude wikiraw://en.wikipedia.org/Page požadavkem API na https://en.wikipedia.org/w/api.php?action=query&titles=Page&...
'https' => [ 'wikipedia.org', 'wikimedia.org', ... ],
'http' => [ 'wmflabs.org', ... ],
# Seznam domén povolených pro wikirawupload: Protokolový přístup.
# Pouze přesná shoda, žádné subdomény.
'wikirawupload' => [ 'upload.wikimedia.org' ],
# Stejné jako wikirawupload, ale pro dotazy Wikidata Sparql
'wikidatasparql' => [ 'query.wikidata.org' ],
];
Známé chyby a omezení
- phab: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, <div>
s graph-id jako atributem.
Ukázka:
<div class="mw-graph" data-graph-id="72edc224f0a10b343c1e84f63dbfc97cac9bc957">
</div>
Rozšíření Graph přidá na stránku modul JavaScriptu ext.graph
ResourceLoader, který obsahuje knihovnu Vega, a vloží JSON definic grafů do proměnné JavaScriptu mediawiki.config
s názvem wgGraphSpecs
.
Jakmile klient nahraje tento modul, knihovna Vega JavaScript naplní každý <div>
plátnem HTML a nakreslí do něj graf, čímž nahradí statický obrázek.
Bezpečnostní prvky
<graph>
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. | ” |
—Stephen LaPorte |
Konfigurace
wgGraphAllowedDomains
Viz část o externích datech.
Ostatní proměnné
- - wgGraphUrlBlacklist byl odstraněn z 787d64a11.
- - wgGraphDataDomains byl odstraněn z e0813f85a. Použijte místo toho wgGraphAllowedDomains.
- - wgGraphUserServiceAlways byl odstraněn z b735f63ff4b.
- - wgGraphIsTrusted byl odstraněn z cf80f43e15.
- - $wgGraphImgServiceUrl byl ukončen.
Povolení jmenného prostoru Graph
Chcete-li ukládat definice grafů jako samostatné stránky v jejich vlastním jmenném prostoru, nakonfigurujte Rozšíření:JsonConfig .
// See https://www.mediawiki.org/wiki/Extension:JsonConfig
$wgJsonConfigModels['graph.jsonconfig'] = 'graph\Content';
$wgJsonConfigs['graph.jsonconfig'] = array(
'namespace' => <PICK-A-NS-NUMBER>,
'nsName' => 'Graph',
'isLocal' => true,
);
Modul VisualEditoru
Od léta 2015 přichází rozšíření Graph také s modulem (ext.graph.VisualEditor), který umožňuje editaci grafů v rámci VisualEditoru.
Tento modul byl výsledkem projektu Google Summer of Code 2015. Další podrobnosti najdete na stránce phab:T89287.
Tento modul umožňuje uživatelům vidět grafy ve VisualEditoru, na rozdíl od cizích uzlů rozšíření. Kromě toho mohou uživatelé otevřít dialog pro úpravu typu grafu, dat a výplně. Uživatelské rozhraní také nabízí způsob, jak upravit nezpracovanou specifikaci JSON grafu v rámci VE, aniž byste museli přepínat do klasického editoru wikitextu, pro případ, že by pokročilejší uživatelé chtěli upravit nastavení, která uživatelské rozhraní nepodporuje.
Tento první krok slouží jako odrazový můstek pro mnoho možností úprav grafů v rámci VisualEditoru a existuje mnoho způsobů, jak modul vylepšit a rozšířit.
Toto rozšíření se používá na jednom nebo více Wikimediálních projektech. Pravděpodobně to znamená, že rozšíření je stabilní a funguje dostatečně dobře, aby jej mohly používat weby s tak vysokou návštěvností. Vyhledejte tento název rozšíření v konfiguračních souborech Wikimedie CommonSettings.php a InitialiseSettings.php, abyste viděli, kde je nainstalováno. Úplný seznam rozšíření nainstalovaných na konkrétní wiki lze vidět na stránce wiki Special:Version. |
Odstraňování problémů s nefunkčními grafy
Chyby s grafy budou zaznamenány do vývojářské konzole.
Chyba: Chybné argumenty konstruktoru (phab:T277906)
Oprava: Nahraďte filepath:Earthmap1000x500compac.jpg za filepath:Earthmap1000x500.jpg
TypeError: undefined is not an object (evaluating 'datum.firstYear.value')
To fix: Make sure you have not set default as null
Související odkazy
- Extension:GraphViz — pro zobrazení grafů množin vrcholů spojených hranami (tedy ne grafů, jako je toto rozšíření)
- Plotly — grafická knihovna JavaScriptu Open source (s možností 3D grafů)
- D3 — dokumenty řízené daty
Toto rozšíření je zahrnuto v následujících balíčcích a/nebo wiki farmách: Toto není autoritativní seznam. Některé wiki farmy/hostitelé mohou obsahovat tento extension, i když zde nejsou uvedeny. Pro potvrzení se vždy obraťte na své wiki farmy/hostitele nebo balíček. |