Efter att ha testat Bokeh med statistik, som jag läser in med Pandas från en csv-fil, så undrar jag om man kan gena lite. Det är ju trots allt data i QGIS, och QGIS kan ju Python!
En fullständig integration med QGIS är säkert fullt möjligt, men det här är bara ett enkelt test med begränsade funktioner.
Det jag gjort är att skapa ett Python Tool i verktygslådan där…
…man väljer vilket vektorlager man skall hämta statistiken från (det blir enklast att bara hämta data från ett lager). Sedan pekar man ut två fält för x- och y-axeln, samt om man vill om någon (eller båda) axlarna skall ha en speciell skala. ”Automatic” är dock ganska bra på att välja lämplig skala.
Vill man ha en ”pup-up” när man håller muspekaren över en punkt så kan man välja ett fält för detta här också, tillsammans med inställningar för färg och storlek.
Slutligen så pekar man ut ett filnamn som resultatet skall skrivas till, och kör processen.
Verktyget öppnar inte diagrammet automatiskt så det får du göra själv.
Vill man ändra något i det resulterande diagrammet så är det bara att justera formuläret och köra igen. Det enda som behöver göras sedan är att uppdatera webbsidan.
Gå vidare
Bokeh kan naturligtvis så mycket mera än det här, men för den som inte är bekväm med Python så kan ett sådant här verktyg vara väldigt användbart. Det hade varit ännu trevligare om diagrammet integrerat mer i QGIS, men då behövs sannolikt ett Plug-in i stället för ett enkelt verktyg. Vill man dessutom koppla ihop diagram och data, för att exempelvis visa valda objekt i kartan även i diagrammet (och tvärt om), så måste man även köra Bokeh Server i bakgrunden.
Vill du prova själv, eller titta närmare på hur skriptet är uppbyggt, så kan du använda mitt processverktyg att börja med. Hämta detta på https://raw.githubusercontent.com/klakar/geosupportsystem/master/Test1_bokeh.py och spara det i din .QGIS2/processing/scripts katalog. Det går även att ”lägga till skript från fil” med ett verktyg i verktygslådan.
För att skriptet skall fungera så behövs naturligtvis Pythonbiblioteket Bokeh. På Linux ( och troligen på Mac) så räcker det att köra pip install bokeh. På Windows tror jag det enklaste är att installera Anaconda, där bland annat Bokeh ingår, men det borde fungera med ett kommando typ: python -m pip bokeh. Där får du dock testa dig fram.
Jag har spelat in en film om det här på engelska, som finns på YouTube.
QGIS 3
För QGIS 2.99 så finns det ett experimentellt plug-in som använder D3 och Plotly för att generera flera olika typer av diagram av det här slaget. Det är mycket mera omfattande än vad jag visar här, men det känns lite långsamt i bland. Inte heller detta insticksprogram är helt interaktivt, även om diagrammen i sig kan förhandsvisas i ett plug-in fönster utan att behöva öppna en webbläsare.
Även detta insticksprogram får problem om inlästa data har värden med NULL. Se därför till att undvika detta i tabellerna, men i fallet med Plotly plug-in så kan man fixa dessa värden med ett uttryck.
if( "FÄLTNAMN" IS NULL, 0, "FÄLTNAMN")
På så sätt sätter man värdet 0 i alla fält som saknar värde, och det går att göra motsvarande för textfält om det skulle behövas.