Как я могу получить пропорциональные размеры пузырьков из R bubbleGoogleMaps?

Я хотел бы использовать bubbleGoogleMaps создать карту spatialpoints с пузырьками, размер которых пропорционален их индивидуальной стоимости. В любом случае, это то, что bubbleGoogleMaps является перспективным в соответствии с документацией.

Тем не менее, я понял, что размеры пузырьков не пропорциональны их индивидуальным значениям, а относятся только к их корзине.

По умолчанию bubbleGoogleMaps используется только 5 корзин на основе квантилей, что легко приводит к очень вводящим в заблуждение картам, как показано в следующем примере:

library("plotGoogleMaps")

data(meuse)
coordinates(meuse)<-~x+y 
proj4string(meuse) <- CRS('+init=epsg:28992')

# we want to see one gigantic bubble for the first observation
# --> let's augment its value to 10000:
meuse$zinc[1] <- 10000 

# However, there is no gigantic bubble in the following bubbleGoogleMaps! 
# --> Bubbles are NOT proportional to their individual values!!!
m <- bubbleGoogleMaps(meuse,
                      zcol='zinc',
                      max.radius = 100,
                      filename='myMap.htm')

Поэтому я попытался создать обходной путь, увеличив количество бинов (= опция 'key.entries') с 5 до 20:

keys <- signif(quantile(meuse$zinc,
                        probs = seq(0, 1, length.out=20),
                        na.rm=T,
                        names=F),3);keys

Однако этот обходной путь не работает, мы получаем ошибку здесь:

m <- bubbleGoogleMaps(meuse,
                      zcol='zinc',
                      max.radius = 100,
                      key.entries=keys, 
                      filename='myMap.htm')

Любые идеи, как создать bubbleGoogleMap с (индивидуально) пропорциональными пузырьками?

Или кто-нибудь знает, как сделать обходной вариант с опцией key.entries Работа?

1 ответ

Решение

Автор plotGoogleMaps пакет решил мою проблему. Он подтвердил, что bubbleGoogleMaps действительно работает с мусорными ведрами.

Для увеличения количества бинов до 20 нам нужно установить key.entries в

key.entries= quantile(meuse@data[, 'zinc'], (1:20)/20)

или для уникальных значений

key.entries= unique(sort(meuse$zinc))

Это то, что я изначально хотел. Тем не менее, легенда теперь становится очень грязной / массивной или даже больше не работает...

Другие вопросы по тегам