nomadicME nomadicME - 2 months ago 13
R Question

difficulty plotting layer from shapefile in rstudio

I'm trying to load and plot a layer from a simple shapefile. It is state boundaries in the US. I can load it fine:

> library("sp","rgdal")

> shape = readOGR("/home/username/data/share/mapnik/world_boundaries/states_EPSG4326.shp", layer="states_EPSG4326")

OGR data source with driver: ESRI Shapefile
Source: "/home/username/data/share/mapnik/world_boundaries/states_EPSG4326.shp", layer: "states_EPSG4326"
with 2895 features and 9 fields
Feature type: wkbPolygon with 2 dimensions


But it fails to plot:

> plot(shape)

There were 50 or more warnings (use warnings() to see the first 50)
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: Path drawing not available for this device
2: Path drawing not available for this device
3: Path drawing not available for this device
...


What am I missing? Nothing shows up in the plot window. There is only the single layer in this shapefile. I could plot it in qgis, which I am trying to find an alternative for. R seems like a popular choice, but I'm not having much luck so far. I googled this warning, but did not turn up anything useful.

Edit:
This same response is received with every shape file I have tried. Here is a shapefile that I have verified responds the same way:

http://dds.cr.usgs.gov/pub/data/nationalatlas/statep010_nt00798.tar.gz

Here is the output of sessionInfo():

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=C
[4] LC_COLLATE=C LC_MONETARY=C LC_MESSAGES=C
[7] LC_PAPER=C LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] rgdal_0.7-22 sp_1.0-2

loaded via a namespace (and not attached):
[1] grid_2.15.2 lattice_0.20-10 tools_2.15.2


Also this is a gentoo system, the following use flags are enabled on dev-lang/R:


  • X icu java jpeg nls openmp png readline tiff



The following use flags are not enabled (capabilities not compiled):


  • -bash-completion -cairo -doc -lapack -minimal -perl -profile -static-libs -tk"



The only two that look suspicious to me are cairo and tk, are they needed for plotting?

I ran R from the terminal with similiar, but not exactly the same results:

> shape = readOGR("/home/username/Downloads/state/statep010.shp", layer="statep010")
OGR data source with driver: ESRI Shapefile
Source: "/home/username/Downloads/state/statep010.shp", layer: "statep010"
with 62 features and 9 fields
Feature type: wkbPolygon with 2 dimensions
> plot(shape)
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In polypath(x = mcrds[, 1], y = mcrds[, 2], border = border, ... :
Path drawing not available for this device
2: In polypath(x = mcrds[, 1], y = mcrds[, 2], border = border, ... :
Path drawing not available for this device
3: In polypath(x = mcrds[, 1], y = mcrds[, 2], border = border, ... :
Path drawing not available for this device
...

Answer

Use plot(shape, usePolypath = FALSE) as described in this thread by Roger Bivand.

Comments