#r #dictionary #polygon #spatial
Вопрос:
Я все еще новичок в R и пытаюсь сделать свою карту более красивой. Несмотря на всю информацию в Интернете, похоже, ничто не решает мою проблему. Когда я строю карту, я все еще вижу белые линии, и я хочу увеличить размер точки или удалить белые линии любым способом. Я попробовал cex и другие графические параметры, но, кроме размера легенды или заголовка, ничего не изменилось. Поскольку я только начинаю строить пространственные графики, дальнейшие предложения по улучшению с радостью принимаются! Спасибо
par(mfrow=c(1,1), cex.lab=1.5,cex.axis=1.3, cex.main=1.5, mar=c(0,1.5,1.2,1.5))
int <- classIntervals(Large spatial polygon dataframe@data$X, n=15, style="quantile",precision=2)
colours <- findColours(int, palette, cutlabels=FALSE)
plot("Large spatial polygon dataframe", col=colours, border=rgb(0,0,0,0.05), las=1, lwd=0.25 ,lty=2,main="X", adj=0)
legend("bottomleft", legend=paste0("<",round(int$brks[-1],digits=0)), fill=palette, border=palette,
bty="n", title="", cex=1.3, y.intersp = 0.75)
data(wrld_simpl)
wrld_simpl.sp <- spTransform(wrld_simpl, " proj=moll")
plot(wrld_simpl.sp,add=T)
Комментарии:
1. Я настоятельно рекомендую использовать пакеты
ggplot2
иggspatial
для создания пространственных участков2. можете ли вы поделиться некоторыми данными, которые мы можем использовать?
3. Я попытался поделиться некоторыми данными с dput, но с треском провалился — попробую еще раз сохранить и поделиться некоторыми данными, но пока я предоставил заголовок данных (надеюсь, это все еще немного помогает). Извините, я привык работать с обычными кадрами данных и все еще перегружен этим многоугольным кадром данных..
4. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
Просто для того, чтобы ты начал с ggplot2
этого . Это обеспечит вам большую гибкость, когда вы привыкнете к этому.
library(maptools)
library(sf)
library(data.table)
#retrieve dataset
data(wrld_simpl)
dt <- wrld_simpl
#set sp to sf (I prefer sf over sp)
dt <- st_as_sf(dt)
#transform to desired projection (just an example)
dt <- dt %>% st_transform(4326)
#add some data and create intervals
#set as data.table
setDT(dt)
#add data
dt[, data := 1:nrow(dt)]
#determine quantiles
quant <- round(quantile(dt$data, c(0.2,0.4)))
#create category column and group data in a quantile category
dt[data < quant[1], category := paste0("<", quant[1])]
dt[data >= quant[1] amp; data < quant[2], category := paste0(quant[1], "-", quant[2])]
dt[data >= quant[2], category := paste0(">", quant[2])]
#set to sf
dt <- st_as_sf(dt)
#create plot
ggplot(dt) geom_sf(aes(fill = category), col = "black", size = 0.001)
theme_bw() scale_fill_brewer(palette = "Set2")
coord_sf(expand = FALSE) theme(text = element_text(size = 15))