Jak wyświetlić wykresy obok obiektów na mapie?

12

To pytanie dotyczy przede wszystkim oprogramowania QGIS, ale wszystkie inne rozwiązania programowe są mile widziane, o ile jest to możliwe, aby osiągnąć je tak łatwo, jak to możliwe, najlepiej od razu po wyjęciu z pudełka. Ograniczeniem jest mapa statyczna (do wydrukowania), dlatego nie ma tu zastosowania żadne interaktywne mapy internetowe.

Czy istnieje sposób tworzenia wykresów (narzędzie / wtyczka w QGIS) dla danych szeregów czasowych / tabeli dla punktów (mogą to być również linie / wielokąty) i wyświetlania ich obok funkcji?

Znam proste narzędzie do tworzenia diagramów / histogramów. Wpadłem również na pomysł ładowania wykresów jako SVG, ale to oznacza, że ​​najpierw muszę wyeksportować wiele wykresów, a następnie ręcznie połączyć je jako symbole. Czy jest jakieś głębsze rozwiązanie po wyjęciu z pudełka?

To, co próbowałem do tej pory, wygląda następująco:

wprowadź opis zdjęcia tutaj

To, co chciałbym osiągnąć, wygląda następująco:

wprowadź opis zdjęcia tutaj

Miro
źródło
2
Cześć Miro, niedawno opublikowałem to pytanie ( gis.stackexchange.com/questions/175299/... ) - które, patrząc wstecz, bardzo przypomina to! Czy udało ci się znaleźć rozwiązanie tego problemu?
Andrew Tice,
1
@AndrewTice Nie, zrobiono to w konkretnym płatnym oprogramowaniu. Niestety nie mam pojęcia, ile można użyć biblioteki python - matplotlib z QGIS i narysować wykresy w kanwie. W każdym razie nie znalazłem nic pomocnego, jak wtyczka lub skrypty na ten temat. Innym sposobem może być generowanie wykresów SVG i łączenie ich w QGIS z punktami.
Miro
Sprawdź ten post od Anity, myślę, że może to być dobry początek: anitagraser.com/2016/03/19/creating-dynamic-icon-series
WKT
@Azimo Dziękuję, opcja, którą opisuje Anita w swoim artykule, jest wspomniana w moim pytaniu od samego początku. Wiedziałem, że w obszarze mapy QGIS można używać plików SVG i łączyć je z funkcjami. Na pewno musisz mieć określoną ścieżkę do SVG dla każdej funkcji, a nie „przypadek kiedy”, ponieważ Anita używa jej w swoim artykule. Szukam czegoś bardziej zaawansowanego, jeśli to możliwe.
Miro
Jest to coś, co pojawia się dość często - byłoby świetnym dodatkiem do QGIS lub ArcGIS, aby móc włączyć wykresy przebiegu w czasie lub mini-wykresy jako etykietę obiektu na mapie.
kes

Odpowiedzi:

1

R najlepiej pasuje do twoich wymagań. Wypróbuj poniższe i eksperymentuj z tym.

#Load rgdal library
library(rgdal)
#Load the shapefile specifying path in dsn and file name for layer
world_layer<-readOGR(dsn="C:/SampleData",layer="world_borders")
#Describe the columns of the layer
summary(world_layer)
#Plot using spplot library with column values categorized into 30 classes
spplot(world_layer, z="POP_CNTRY", cuts= 30)

Powinieneś otrzymać mapę i wykres, tak jak pokazano poniżej, oczywiście, że możesz ją dostosować na więcej niż jeden sposób.

wprowadź opis zdjęcia tutaj

Istnieje wiele linków, które uczą bardziej szczegółowo

http://www.kevjohnson.org/making-maps-in-r/

http://personal.colby.edu/personal/m/mgimond/Spatial/Intro_to_spatial_data_manipulation_in_R.html#using-the-rgdal-library

https://cran.r-project.org/web/views/Spatial.html

http://www.r-bloggers.com/amateur-mapmaking-getting-started-with-shapefiles/

https://www.nceas.ucsb.edu/scicomp/usecases/ReadWriteESRIShapeFiles

addcolor
źródło
Dziękuję, ale w jaki sposób ma to związek z moim pytaniem „Jak wyświetlać wykresy obok obiektów na mapie?” Gdzie są wykresy obok obiektów dla każdego obiektu na mapie?
Miro,
1

Możesz skorzystać z ArcGIS, jeśli masz do niego dostęp. To jest przykład tego, co zrobiłem z ArcMap i excel (przepraszam za język, starą mapę). Możesz utworzyć wykres w programie Excel i wstawić go jako obiekt. Rzecz w tej metodzie jest taka, że ​​jeśli chcesz użyć dużej palety kolorów i chcesz zsynchronizować je z mapą, musisz to zrobić ręcznie. Nużąca metoda, ale działa.
Inną opcją, również w ArcMap, jest zestaw narzędzi Graph, który może tworzyć grafikę czasową. Osobiście nie lubię tego narzędzia i wolę używać Origin lub Graphera do tworzenia profesjonalnych wykresów.

alecsx
źródło
1
Dziękuję, ale w jaki sposób ma to związek z moim pytaniem „Jak wyświetlać wykresy obok obiektów na mapie?” Gdzie są wykresy obok obiektów dla każdego obiektu na mapie?
Miro,
Na załączonej mapie, która jest mapą pokrycia terenu, obecne tam wykresy kołowe przedstawiają procent pokrycia terenu dla każdego rodzaju pokrycia terenu. Powiedziałeś, że inne rozwiązania programowe są mile widziane, stąd moja odpowiedź.
alecsx,
Z pewnością mile widziane są inne rozwiązania programowe. Ale załączone zdjęcie pokazuje tylko wykresy kołowe jako obrazy dodane obok ramki mapy - jest to łatwe do wykonania we wszystkich procesach obróbki końcowej QGIS, Mapinfo, ArcGIS i innych lub w oprogramowaniu graficznym. Chcę po to, aby mieć wykres dla każdego obiektu bezpośrednio na mapie. Możesz myśleć o tym w podobny sposób jak etykietowanie, tyle że zamiast etykiety tekstowej jest wykres. I nawet wiem, jak to zrobić za pomocą SVG lub innego formatu obrazu w QGIS, jak podano w moim pytaniu. Pytam, czy możliwe jest, aby te wykresy były „na żywo” (pochodzą z bazy danych lub tabeli) zamiast obrazów.
Miro,
1

Nie jestem pewien, czy UMS MapServer działa jako warstwa WMS w QGIS, spełni twoje potrzeby. Próbowałem, ale nie jestem dobry w projektowaniu dobrego wykresu za pomocą pliku MapServer * .MAP.

Kampau Ocu
źródło
Czy można dodać linki do części dokumentacji dotyczącej wykresów, a najlepiej kilka przykładów / turorialów? Rzuciłem okiem i wydaje się, że można również tworzyć wykresy słupkowe i skumulowane. Instalowanie UMS MapServer i konfigurowanie WMS, aby mieć możliwość wyświetlania wykresów na mapie, jest uciążliwe, ale w niektórych przypadkach może być jedynym możliwym rozwiązaniem. Dziękuję Ci.
Miro,