2016-07-28 2 views
0

Я пытаюсь настроить плотность новых регистраций ggplant на локальную локальную карту; Мой сюжет работал в разумной степени, за исключением того, что я понятия не имею, что случилось с цветовой палитрой. Я подозреваю, что это смутилось наличием десятичных знаков в значении заполнения. Если вы нажмете на картинку, вы, вероятно, заметите, что цветная клавиша почти круглая от начала до конца.Странная цветовая палитра ggplot в ссылочной клавише

Кто-нибудь знает, что могло бы произойти здесь, как избежать этого в будущем и решить по этому поводу лучший ключ?

Result of current GGplot

install.packages("rgdal") 
library(rgdal) 
install.packages("maptools") 
library(maptools) 
install.packages("rgeos") 
library(rgeos) 
myshape2 <- readShapeSpatial("infuse_dist_lyr_2011.shp") 
plot(myshape) 
plot(myshape2) 
install.packages("ggplot2") 
library(ggplot2) 
str(myshape2) 
myshape2frame <- fortify(myshape2, region="name") 
install.packages("gpclib", type = "source") 

pathRtools <- paste(c("c:\\Rtools\\bin", 
        "c:\\Rtools\\MinGW_64\\bin", 
        "c:\\MiKTeX\\miktex\\bin", 
        "c:\\R\\bin\\i386", 
        "c:\\windows", 
        "c:\\windows\\system32"), collapse=";") 
Sys.setenv(PATH=paste(pathRtools,Sys.getenv("PATH"),sep=";")) 
install.packages("gpclib", type = "source") 
library(gpclib) 
gpclibPermit() 
gpclibPermitStatus() 
# simplify the polgons a tad (tweak 0.00001 to your liking) 
myshapebuffer <- gBuffer(myshape2, byid=TRUE, width=0) 
View(myshapebuffer) # deal with bad polygons 
plot(myshapebuffer) 
myshape2frame <- fortify(myshapebuffer, region="name") 
View(myshape2frame) 
mig16 <- read.csv("migration.csv") 
library(plyr) 
intmig <- ggplot() + geom_map(data = mig16, aes(map_id = Area, fill = Mig), 
       map = myshape2frame) + expand_limits(x = myshape2frame$long, y = myshape2frame$lat)) 

ответ

0

Я не могу проверить это точно, но я думаю, что наоборот (десятичного вопроса), что значения штриховки рассматриваются в качестве факторов, а не как реальные числовые значения. Попробуйте изменить fill = Mig на номер fill = as.numeric(as.character(Mig)).

(Помните, что факторы должны быть преобразованы в символ, прежде чем преобразовать их в требуемое числовое значение).

+0

Благодарю вас, это похоже на проблему, потому что после того, как вы попробовали свое предложение, цвета вернулись нормально, а теперь на шкале 40 - 80 - 120 - 160, что гораздо разумнее. Это сказало, что мне нужно будет каким-то образом изменить масштаб, чтобы преувеличить региональные различия. То, что, похоже, произошло, заключается в том, что высокие значения в некоторых местах, например, лондоне, вытащили масштаб и сделали существенные различия в другом месте, исчезли - его все тот же оттенок синего! –

+0

Приятно слышать! Масштабирование значений будет иметь важное значение. посмотрите пакет 'scale ', который' ggplot2' импортирует для некоторой быстрой помощи – NJBurgo

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