2015-02-21 4 views
0

Как можно создать следующий график, используя spplot или ggplot. Я пробовал в обоих направлениях, но, к сожалению, не победил ни в одном из них. Значок, с которым я столкнулся, связан с Соответствующий с добавлением точек к картам. Все необходимые данные (.shp,.prj,.dbf,.shx), которые необходимо воспроизвести проблему доступны hereДобавление взвешенных точек к множеству карт.

Мой код следующим образом:

library(sp) 
    library(maptools) 
    library(RColorBrewer) 
    germK <- readShapePoly("C:/Users/XYZ/Dropbox/R Skripts/PolygonG/vg250_krs.shp") 
    germK <- germK[[email protected]$GF==4,] 
    [email protected]$EWZ2 <- cut([email protected]$EWZ, breaks=quantile([email protected]$EWZ, 1:10/10)) 
    [email protected]$EWZ <- [email protected]$EWZ2 
    mypalette <- rev(brewer.pal(9, "RdYlGn")) 
    pts1 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black") 
    pts2 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black") 
    p.layout <- list(pts1,pts2) 
    spplot(germK,zcol=c("EWZ","EWZ2"), sp.layout = p.layout, col.regions=mypalette) 

В результате я получил, выполняя верхние строчки кода является: enter image description here

На первой карте должны быть нанесены отметки от pts1, соответственно на второй карте должны быть указаны точки от pts2. В моем случае вы можете видеть, что обе точки присутствуют на обеих картах. Есть идеи, как решить проблему?

В последнее время я нашел способ для соответствующих точек, изображающих, но это названия исчезают:

p1 <- spplot(germK,zcol="EWZ", sp.layout = pts1, col.regions=mypalette, 
         names.attr="X") 
p2 <- spplot(germK,zcol="EWZ", sp.layout=pts2, col.regions=mypalette, 
         names.attr="Y") 
p3 <- c(p1,p2, layout=c(2,1)) 
p3 

После этой части кода я получаю желаемый вид, что не совсем красиво, но приемлемо. enter image description here Любая помощь будет высоко appriciated!

+0

Я должен что-то отсутствует, но это выглядит из кода, как множества точек одинаковы и построены на одной и той же географии. Как должен выглядеть график EWZ2? – lawyeR

+1

Я потратил некоторое время на поиск ваших данных, но я не мог определить, какие файлы vg у вас есть. Я боюсь, что просто наличие файла .shp не позволяет нам импортировать данные в R. Как сказал @lawyeR, мне кажется, что ваши EWZ и EWZ2 идентичны. Если вам нужна помощь, можете ли вы указать, какие данные у вас есть? Насколько я искал, существуют различные zip-файлы. [Это] (http://www.geodatenzentrum.de/geodaten/gdz_rahmen.gdz_div?gdz_spr=eng&gdz_akt_zeile=5&gdz_anz_zeile=1&gdz_unt_zeile=14&gdz_user_id=0) - это то место, где я дошел. – jazzurro

+0

Фон обеих карт должен быть одинаковым. Единственное различие между двумя графиками происходит в точках. В моем случае я просто создал набор точек случайным образом, используя * образец * длины рассматриваемых многоугольников (412). @jazzurro, ты совершенно прав, я забыл добавить файлы neseccery для загрузки карт. Хотя вы точно нашли источник данных. –

ответ

1

Я думаю, что вы можете использовать в which аргумент:

pts1 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black", which = 1) 
pts2 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black", which = 2) 

spplot(germK,zcol=c("EWZ","EWZ2"), sp.layout = list(pts1, pts2), col.regions=mypalette) 
+0

очень хорошее решение @rengis! Мне бы это понравилось. –

Смежные вопросы