Добавление разрывов фиксированного размера с помощью tmap tm_bubble - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь создать пузырьковый график tmap, в котором размер и цветовая эстетика имеют одинаковые фиксированные разрывы.Установка style = "fixed" и breaks = c(-Inf, seq(-10, 10, by = 2.5), Inf) приводит к желаемому результату для переменной цвета, но переменная размера остается неизменной.Я имею дело с данными, которые имеют положительные и отрицательные значения, поэтому я использую расходящуюся цветовую палитру с эстетикой цвета.Я использую абсолютное значение этой переменной при построении ее размера, хотя.Я хотел бы создать разрывы фиксированного размера между 0 и 10, чтобы соответствовать диапазону абсолютных значений моей цветовой палитры.

Вот простая версия моего текущего скрипта карты

# dput(head(df))
points_layer <- structure(list(date = structure(c(17449, 17449, 17449, 17449, 
17449, 17449), class = "Date"), node = c("Irvington", "Marion Court Apartments", 
"Portsmouth Portland", "PSU STAR Lab Roof North", "PSU STAR Lab Roof South", 
"PSU STAR Lab Rose City Park"), pm2_5_cf_x = c(9.25546767003776, 
9.45130634372901, 12.6012155894551, 8.74508087500526, 8.42118421108649, 
9.22030608712564), pm2.5.predicted = c(9.20049509485525, 8.7580813489583, 
11.0618606546844, 7.93370690912048, 7.91343513801979, 9.40375047003665
), geometry = structure(list(structure(c(526751.6, 5043182), class = c("XY", 
"POINT", "sfg")), structure(c(528887.8, 5039881), class = c("XY", 
"POINT", "sfg")), structure(c(522455.5, 5048089), class = c("XY", 
"POINT", "sfg")), structure(c(524503.4, 5040017), class = c("XY", 
"POINT", "sfg")), structure(c(524497.7, 5039985), class = c("XY", 
"POINT", "sfg")), structure(c(531513.6, 5043473), class = c("XY", 
"POINT", "sfg"))), class = c("sfc_POINT", "sfc"), precision = 0, bbox = structure(c(522455.5, 
5039881, 531513.6, 5048089), .Names = c("xmin", "ymin", "xmax", 
"ymax"), class = "bbox"), crs = structure(list(epsg = 26910L, 
    proj4string = "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"), .Names = c("epsg", 
"proj4string"), class = "crs"), n_empty = 0L), diff = c(-0.0549725751825161, 
-0.693224994770707, -1.53935493477068, -0.811373965884778, -0.507749073066702, 
0.183444382911013), abs_diff = c(0.0549725751825161, 0.693224994770707, 
1.53935493477068, 0.811373965884778, 0.507749073066702, 0.183444382911013
), mape = c(0.593947028311448, 7.33470030024649, 12.2159241213113, 
9.27806131792109, 6.02942603248424, 1.9895693394296)), .Names = c("date", 
"node", "pm2_5_cf_x", "pm2.5.predicted", "geometry", "diff", 
"abs_diff", "mape"), sf_column = "geometry", agr = structure(c(NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_), .Names = c("date", "node", "pm2_5_cf_x", "pm2.5.predicted", 
"diff", "abs_diff", "mape"), .Label = c("constant", "aggregate", 
"identity"), class = "factor"), row.names = 698:703, class = c("sf", 
"data.frame"))



tm_shape(raster_layer) + # ignore the raster for now
    tm_raster() + # and ignore this too
    tm_shape(points_layer) +
    tm_bubbles(col = "diff", size = "abs_diff", style = "fixed",
        size.lim = c(0,10), breaks = c(-Inf, seq(-10, 10, by = 2.5), Inf))

enter image description here

...