Shape Datei als image Plot

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

knuffikatze
Beiträge: 28
Registriert: Mi Apr 19, 2017 9:04 pm

Shape Datei als image Plot

Beitrag von knuffikatze »

Hallo,

ich habe eine Shape Datei (.shp), die ich mit dem merge() Befehl Daten über eine id angefügt habe. Jetzt möchte ich diese graphisch darstellen. Es gelingt mir jedoch nur, die Grenzen dieser Datei darzustellen. Die unterschiedlichen Felder färben sich jedoch nicht den Werten entsprechend ein. WIe funkioniert sowas?

Vielen Dank schonmal.

Gruß
Eva

Code: Alles auswählen

germany <- readOGR( "x.shp", layer = "x")
germany <- gSimplify(germany, tol=0.001, topologyPreserve=TRUE)

Data <- as.data.table(read.table(y.csv',  sep=';', header=TRUE,, dec=",",
                                           stringsAsFactors=FALSE))

m <- merge(germany, Data, by='ID')

plot(m , border="blue", axes=TRUE, lwd=0.3)
Zuletzt geändert von jogo am Mi Jul 05, 2017 7:16 pm, insgesamt 1-mal geändert.
Grund: Formatierung des Codes
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Shape Datei als image Plot

Beitrag von EDi »

Ich mache hier mal Werbung für das relative neue sf package,
das viele operationen vereinfacht und der Nachfolger von sp wird. Ziemlcih gut das package, alle die GIS in R machen sollten ein Auge drauf werfen.

Hier ein Beispiel mit der shape die mitgeliefert wird:

Code: Alles auswählen

library(sf)
library(ggplot2)
# read shapefile
nc = st_read(system.file("shape/nc.shp", package="sf"))
# have a look at the data
print(nc[1:5, ])

# plot filled by area
ggplot(nc) +
  geom_sf(aes(fill = AREA))
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
knuffikatze
Beiträge: 28
Registriert: Mi Apr 19, 2017 9:04 pm

Re: Shape Datei als image Plot

Beitrag von knuffikatze »

Hallo Edi,

ich habe es gerade mal ausprobiert und komme immer aus diesen Fehler:

Error in st_sf(x, ..., agr = agr) :
no simple features geometry column present
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Shape Datei als image Plot

Beitrag von EDi »

knuffikatze hat geschrieben: Mi Jul 05, 2017 5:56 pm Hallo Edi,

ich habe es gerade mal ausprobiert und komme immer aus diesen Fehler:

Error in st_sf(x, ..., agr = agr) :
no simple features geometry column present
Ohne ein reproduzierbares Beispiel, kann ich leider auch nur sagen dass mein Beispiel-Code läuft...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
knuffikatze
Beiträge: 28
Registriert: Mi Apr 19, 2017 9:04 pm

Re: Shape Datei als image Plot

Beitrag von knuffikatze »

Hallo Edi,

zudem bekomme ich mit deinem Code den Fehler:

Error in geom_sf(aes(fill = AREA)) : could not find function "geom_sf"

Muss ich hierzu noch eine zusätzliche library laden und wenn ja welche?

Vielen Dank dir.

Gruß
Eva
knuffikatze
Beiträge: 28
Registriert: Mi Apr 19, 2017 9:04 pm

Re: Shape Datei als image Plot

Beitrag von knuffikatze »

Hallo,

ich was nun etwas gefunden, was den gleichen Fehler hervorbringt:

http://www.gadm.org/download

Hier habe ich mir die Datei DEU_adm0.shp runtergeladen

Wenn ich nun folgenden Befehl eingeben:

library(sf)
library(ggplot2)
nc <- st_read("...DEU_adm0.shp", package="sf")

kommt dieser Fehler:

Reading layer `DEU_adm0' from data source `...\DEU_adm0.shp' using driver `ESRI Shapefile'
Error in st_sf(x, ..., agr = agr) :
no simple features geometry column present

Könnt Ihr mir hier weiterhelfen?

Ich verzweifel gerade daran.
Danke
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Shape Datei als image Plot

Beitrag von EDi »

Sorry, hab vergessen zu erwähnen, dass du die Entwicklungsversion von ggplot brauchts (neuer CRAN release dauert noch ein wenig wie ich auf der useR!2017 gehört habe).

Code: Alles auswählen

devtools::install_github("tidyverse/ggplot2")
vorher eventuell noch devtools installieren.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
knuffikatze
Beiträge: 28
Registriert: Mi Apr 19, 2017 9:04 pm

Re: Shape Datei als image Plot

Beitrag von knuffikatze »

Hallo Edi,

danke für die Antwort. Leider bekomme ich ein Fehler beim Laden:


* installing *source* package 'ggplot2' ...
** R
** data
*** moving datasets to lazyload DB
** inst
** tests
** preparing package for lazy loading
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[]) :
namespace 'scales' 0.4.1 is being loaded, but >= 0.4.1.9002 is required
ERROR: lazy loading failed for package 'ggplot2'
* removing 'C:/Users/steltee/Documents/R/R-3.4.0/library/ggplot2'
* restoring previous 'C:/Users/steltee/Documents/R/R-3.4.0/library/ggplot2'
Installation failed: Command failed (1)


Ich weiß nicht wirklich, was dieser bedeutet. Kannst du mir da noch mal weiterhelfen?

Danke.

Gruß
Eva
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Shape Datei als image Plot

Beitrag von EDi »

Hmm, vielleicht auch scales von github installieren?
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
knuffikatze
Beiträge: 28
Registriert: Mi Apr 19, 2017 9:04 pm

Re: Shape Datei als image Plot

Beitrag von knuffikatze »

Hallo Edi,

devtools::install_github("tidyverse/scales")
Downloading GitHub repo tidyverse/scales@master
from URL https://api.github.com/repos/tidyverse/ ... all/master
Installation failed: Not Found (404)

Leider bekomme ich das nicht ans laufen.

Gibt es noch eine andere Möglichkeit meine Shape-Datei sowie dessen Daten mit Ihren Umrissen und dessen Felder wie im Image Plot darzustellen?

Vielen Dank.

Gruß
Eva
Antworten