Generieren von Sparklines als Diagramme QGIS 2.10

8

Das Folgende scheint eine Zusammenführung von Fragen zu sein. Ist es möglich, Punkte als Sparklines in ArcGIS for Desktop darzustellen? und Kreisdiagrammkoordinaten in QGIS .

Grundsätzlich habe ich 5 Beobachtungssätze für n Regionen (Geografie des Australian Bureau of Statistics SA2). Jeder Satz von Beobachtungen ist die Anzahl der Personen unter 30 Jahren und der Personen über 60 Jahre. Im Grunde genommen werden also zwei Koordinaten bereitgestellt, die gegeneinander aufgetragen werden können, um ein Liniendiagramm zu erstellen.

Ich hatte einige Erfolge beim Importieren dieser als WKT-Linestring in QGIS, um einige ziemlich funky Liniendiagramme zu generieren. Im folgenden Bild ist jede Linie eine SA2 in einer amalgamierten Geographie (HMdA), wie Sie sehen können, gibt es unterschiedliche Trajektorien Für verschiedene Linien ist es diese Facette, die ich erfassen möchte:

Geben Sie hier die Bildbeschreibung ein

Dadurch hat mir denken , dass es sollte möglich sein , diese als Tufte-esq Sparklines um den Schwerpunkt für jeden SA2 zu machen. Dies würde helfen, die Trajektorien in einen räumlichen Kontext zu stellen (worum es bei GIS schließlich geht!).

Ich habe gedacht, dass ein .svg-Rendering der richtige Weg sein könnte (obwohl der Link zum Tutorial zum Erstellen von SVG-basierten Sparklines mit d3.js auf der Website von Tufte fehlerhaft ist: ( http://www.edwardtufte.com/ bboard / q-and-a-fetch-msg? msg_id = 0001OR ). Hier wäre die Idee, die SVGs zu rendern und dann die SA2-Schwerpunktkoordinaten für die Zuordnung an sie anzuhängen - obwohl ich nicht weiß, wie machbar dies wäre Es gibt mehr als 3000 SA2s und ich möchte nicht so viele SVG-Dateien rendern!

QGIS-Diagramme scheinen ein weiterer möglicher Weg zur Erkundung zu sein - obwohl ich anscheinend keine Literatur zum Erstellen maßgeschneiderter Diagramme (außer Kreis-, Balken- und Textdiagrammen) finde. Hier wäre also die (zweite, sorry!) Frage: Hat jemand versucht, verschiedene Diagrammstile in QGIS zu erstellen?

BEARBEITEN Wenn noch jemand diese Frage prüft ... Ich bin gerade dabei, DIESE kleine Schönheit zu verwenden, um ein flächengleiches Framework zu strukturieren, in das die Sparklines fallen gelassen werden.

Andrew Tice
quelle

Antworten:

4

Dies sollte von der QGIS-Seite ziemlich einfach sein; Der schwierigere Teil wird das Rendern der SVGs im Batch sein. Dafür ist R wahrscheinlich so gut wie jeder andere. Wenn JavaScript ansprechender ist, finden Sie in dieser Antwort ein Beispiel für das Exportieren von SVG aus d3.

Sie können aus Ihren Zensusbereichen eine Schwerpunktebene erstellen und diese als SVG-Symbole formatieren. Ab neueren Versionen von QGIS können Sie mithilfe von Ausdrücken eine Zeichenfolge erstellen, die den Dateinamen der SVG darstellt. Solange Sie sich an eine Namenskonvention halten (z. B. censusarea_1234.svg), können Sie einen Ausdruck wie verwenden

'/path/to/' || 'censusarea_' || "id_field" || '.svg'

In diesem Fall richtet sich die Mitte des SVG nach dem Schwerpunkt aus. Sie können einen Versatz hinzufügen und diese mithilfe einiger Felder definieren (auf die gleiche Weise wie die Beschriftung).

Wie es in Ihrem Screenshot aussieht, sehen Sie den ersten Datenpunkt mit dem Schwerpunkt aus. In diesem Fall möchten Sie dies beim Rendern Ihrer SVG-Datei tun. Am einfachsten ist es wahrscheinlich, die x- und y-Koordinaten des ersten Datenpunkts nacheinander von jedem Punkt zu subtrahieren, um die Dinge zu zentrieren. In R wäre dies so etwas wie xlim=c(-100,+100)und ylim=c(-100,+100)auf dem Plot sollte dies die SVG auf den ersten Punkt zentrieren.

Ein weiterer möglicher Mechanismus sind SVG-Annotationen . Diese können so gestaltet werden, dass die Blase ausgeblendet wird und nur die SVG angezeigt wird. Diese haben den Vorteil, dass sie manuell verschoben und gelöscht werden können - praktisch, wenn Sie Positionen anpassen möchten (z. B. um Überlappungen zu vermeiden). Es sollte möglich sein, Python zu verwenden, um diese programmgesteuert zur Zeichenfläche hinzuzufügen, aber ich konnte dies nicht zum Laufen bringen.

Steven Kay
quelle
Danke für diesen Steven. Es ist die Batch-SVG-Generation, die mir Kummer macht. Das Benennen der Dateien mit der eindeutigen SA2-ID scheint ein guter Weg zu sein.
Andrew Tice
1
Ah .... R .... stackoverflow.com/questions/14432543/…
Andrew Tice
3

Außerdem sollte man auf den "Geometrie-Renderer" -Stil warten, der in QGIS 2.14 angezeigt wird, auf den jedoch über die Entwicklungsversion zugegriffen werden kann.

mathieu_r
quelle
Danke Mathieu. Ich werde mir das auf jeden Fall ansehen, wenn ich Administratorrechte auf meinem aktuellen Computer erhalte!
Andrew Tice