Бештар

Чӣ гуна нуқтаҳои ҳамчун R доираҳои хатмкардашуда / мутаносибро дар R тартиб додан мумкин аст?


Ман бори дигар бо саволҳои харитаи R бештар баргаштам! Ин ба рамзи нуқтаҳо бо як хусусияти муайян бо доираҳои хатмкардашуда / мутаносиб аст.

МАATЛУМОТ: Агар шумо таваҷҷӯҳ дошта бошед, коди пурраи маро дар инҷо пайдо кардан мумкин аст. CSV таваҷҷӯҳи ман дар ин ҷо аст. Шеффайли Эфиопияро аз ин ҷо зеркашӣ кардан мумкин аст

Ман нуқтаҳои CSV-ро дар болои шакл кашидаам. Барои кӯтоҳӣ, ин аст нусхаи хеле кӯтоҳшудаи коди ман:

library (raster) library (rgdal) # феҳристи кории худро танзим кунед # хонед дар eth shapefile eth <- readOGR (dsn = "D: / Mapping-R / Ethiopia", layer = "ETH_adm0") # хонед дар ҷойгоҳҳои филиали csv <- read.csv ("Branches_Africa.csv", сарлавҳа = TRUE) # трансформатор чорчӯбаи маълумотро ба spdf барои харитасозии координатҳо (шохаҳо) <- ~ Lon + Lat # қитъаи шакл бо қитъаи нуқтаи болоии (eth) нуқтаҳо (филиалҳо $ Lon , филиалҳо $ Lat, col = "blue", pch = 16, cex = .5)

Тавре ки шумо дар филиалҳои CSV мебинед, якчанд атрибутҳо мавҷуданд. Дар ҳолати ман, ман мехоҳам хусусияти "ҳисса" -ро бо давраҳои хатмкардашуда / мутаносиб, ки дар ин ҷо дида мешавад:

Беҳтараш, ман низ мехоҳам рангҳои ҳар як нуқтаро тағир диҳам ва ба рамзи QGIS мувофиқат кунам.

Агар шумо ба рамзи пурраи ман нигаред, шумо мефаҳмед, ки ман истифода накардаамggplotбарои харита, пас ман мехостам, ки ҳалли аз он маҷмӯа омада наомада бошад (ё ggplot пас аз он ки ман ҳамаи маълумотҳоро барои бастабандӣ кардан табдил додам, корро осон мекунад?). Ман кӯшиш кардам истифода кунамspplotтибқи ин паём бо:

spplot (филиалҳо, "ҳисса", минтақаҳои минтақа = brewer.pal (9, "Reds"), буришҳо = 8, тарозуҳо = рӯйхат (кашидан = T))

аммо код ба ман хатои зеринро дод:Хатогӣ дар fill.call.groups (args.xyplot, z = z, edge.col = edge.col, colorkey = colorkey,: шумораи рангҳо аз шумораи сатҳҳои фактор камтар

Ман инчунин кӯшиш кардам, ки бо онҳо кор кунамmapCirclesазrCartoбастабандӣ, аммо ман ҳам он ҷо бахт надоштам.

Пас, чӣ гуна метавонам символологияи филиалҳоро $ share тағир диҳам, то ба ҷои танҳо як андоза / ранг, доираҳои хатмкардашуда / мутаносиб (ва беҳтараш гуногунранг) нишон дода шаванд?


Ман медонам, ки шумо роҳи ҳалро барои истифода накардан бартарӣ медиҳедggplotбастаи, аммо ман фикр мекардам, ки мисоли фавриро танҳо барои муқоиса илова кардан муфид аст.

китобхона (rgdal) китобхона (ggmap) китобхона (тарозуҳо) #data eth <- readOGR (".", "ETH_adm0") филиалҳои <- read.csv ("Branches_Africa.csv", header = T) филиалҳо <- филиалҳо [филиалҳо $ CO == "ET",] # шохаҳои зерзабони Эфиопияро интихоб кунед $ share <- as.numeric (as.character (filiallar $ share)) # ба рақамҳо табдил диҳед # сарҳади Эфиопияро барои ggplot eth_df <- fortify (eth) # get асосӣ харитаи eth_basemap <- get_map (координатҳо (eth), zoom = 5) # қитъаи ggmap (eth_basemap) + geom_polygon (data = eth_df, aes (x = long, y = lat, group = group), fill = "red", алфа = 0,1) + геом_нуқта (маълумот = шохаҳо, аес (х = Лон, у = Лат, андоза = ҳисса, пур = ҳисса), шакл = 21, алфа = 0.8) + миқёс_ҳаҷм_давомдор (диапазон = с (2, 9), танаффусҳо = зебо_шиканҳо (7)) + scale_fill_distiller (танаффусҳо = зебо_шаклҳо (7))


Агар шумо дар ҷустуҷӯи интерфейси бештар интерактивӣ бошед, эҳтимолан бояд ба харита пакете, ки дар CRAN танҳо ба наздикӣ бароварда шудааст. Маҷмаи инчунин дорои aspplotусули объектҳои 'mapview', аммо охирин ҳанӯз объектҳои бисёрқабатаро дастгирӣ намекунад. Агар шумо сарсухани кӯтоҳеро ҷустуҷӯ кунед, танҳо винетка бастаро тамошо кунед.

## бастаҳои лозимӣ # install.packages ("mapview") library (mapview) library (sp) library (RColorBrewer) ### polygon ## get data eth <- raster :: getData (country = "ETH", level = 0 ) ### нуқтаҳо ## филиалҳои маълумотро ворид кунед <- read.csv ("Branches_Africa.csv", header = TRUE) координатҳо (шохаҳо) <- ~ Lon + Lat proj4string (филиалҳо) <- proj4string (eth) ## нуқтаҳои интихоб аз шохаҳои эфиопия <- филиалҳо [eth,] ### visualize ## рангҳои cols <- colorRampPalette (brewer.pal (9, "Blues")) ## mapview viewer open (branch, zcol = "share", cex = " ҳисса ", color =" black ", fillColor = cols (100), alpha.regions = .8) + eth


Шумо метавонед доираҳои хатмкардаро бо истифодаи функсияи ҳубобӣ дар sp харита диҳед.

китобхона (sp) маълумот (meuse) ҳамоҳангсозӣ (meuse) <- c ("x", "y") bubble (meuse, "cadmium", main = "konsentrasions of cadmium (ppm)", key.entries = 2 ^ (- 1: 4), col = c ("кабуд", "сурх"))

Ҳоло, биёед функсияро тақсим кунем, то бо истифодаи нақшаи асосӣ чандирии бештар диҳем.

Аввалан, мо векторе месозем, ки ба далели "cex" дар қитъаи замин интиқол дода шавад. Ин андозаи доираҳои моро муайян мекунад.

zcol = "cadmium" q = sqrt (abs (quantile (meuse @ data [, zcol]))) az = sqrt (abs (meuse @ data [, zcol])) maxsize = 4 pt.cex <- as.vector ( ҳадди аксар * az / max (az, q))

Ҳоло бо истифода аз бастаи classInt барои ёфтани танаффусҳо ва таъин кардани рангҳо, мо метавонем векторе созем, ки онро ба далели "col" дар қитъаи замин интиқол диҳем.

library (classInt) pal <- c ("blue", "green", "red3") pt.class <- classIntervals (meuse @ data [, zcol], n = 10, style = "hclust", method = "пурра ") pt.col <- findColours (pt.class, pal)

Ҳоло мо метавонем ҳама чизро бо якҷоякунии x ва y координатҳои объекти нуқтаи худ ва векторҳои муайянкунандаи андоза ва ранги нуқтаро ба далелҳои "cex" ва "col" якҷоя кунем. Афсона тавассути кашидани иттилоот аз атрибутҳои classInt сохта шудааст.

қитъа (координатҳо (meuse) [, 1], координатҳо (meuse) [, 2], asp = 1, cex = pt.cex, col = pt.col, pch = 20) legend ("topleft", fill = attr ( pt.col, "palette"), legend = names (attr (pt.col, "table")), bg = "white") pt.tab <- attr (pt.col, "table") legtext <- хамираи (номҳо (pt.tab), "(", pt.tab, ")",)

Агар шумо як омил ё тағирёбандаи номиналӣ дошта бошед, ки шумо нақшаи онро кашида истодаед, алтернатива танҳо аз нав векторро ба андозаҳо ва рангҳои дилхоҳатон нав кардан аст. Ин аст мисоле бо истифода аз атрибутсияи "хок", ки се сатҳ дорад.

tuproq.cex <- ifelse (meuse $ хок == 1, 0.75, ifelse (meuse $ хок == 2, 1.5, ifelse (meuse $ хок == 3, 2.5, NA))) ground.col <- ifelse (meuse $ хок == 1, "кабуд", ifelse (meuse $ хок == 2, "сабз", ifelse (meuse $ хок == 3, "сурх", НА)))

Андозаҳо ва рангҳои номиналиро барои хок кашед.

қитъа (координатҳо (meuse) [, 1], координатҳо (meuse) [, 2], asp = 1, cex = ground.cex, col = ground.col, pch = 20) legend ("topleft", legend = c ( "ground.type 1", "ground.type 2", "ground.type 3"), pch = c (20,20,20), col = c ("кабуд", "сабз", "сурх"), pt.cex = c (0.75,1.5,2.5))

Функсияи ҳубобӣ дарвоқеъ функсияи xyplot -ро аз тор истифода мекунад. Маълумоти бештарро дар бораи истифодаи xyplot дар функсияҳои бо истифодаи xyplot пайдо кардан мумкин аст. Далели key.space атрибутҳои нишонгузорӣ / легендарро муайян мекунад. Ин аст мисоли хеле содда бо истифода аз маълумоте, ки мо дар боло сохтаем. Ҳарчанд, ман интихоб кардам, ки афсона эҷод накунам.

китобхона (тор) xyplot (координатҳо (meuse) [, 2] ~ координатҳо (meuse) [, 1], col = pt.col, cex = pt.cex, pch = 20)