Сохранять одинаковый масштаб пузырьков на нескольких картах, используя draw.bubble в картплотах?

В настоящее время я рисую несколько пузырьковых графиков, наложенных на карты, используя draw.bubble из packagemapplots. Данные состоят из плотности животных для ряда различных видов в разных местах, например.

Species Density Lat  Lon
A       10      55.4 -7.8
A       12      55.4 -7.7
A       15      55.4 -7.6
B       20      55.4 -7.8
B       22      55.4 -7.7
B       25      55.4 -7.6

так далее....

Я рисую отдельную карту для каждого вида, используя следующий код:

xmin <- min(Data$Long)
xmax <- max(Data$Long)
ymin <- min(Data$Lat)
ymax <- max(Data$Lat)

xlim <- c(xmin,xmax)
ylim <- c(ymin,ymax)

windows()

basemap(xlim, ylim)

draw.bubble(Data$Long[Data$Species=="A"],Data$Lat[Data$Species=="A"],
        Data$Density[Data$Species=="A"], maxradius=0.15, pch=21, bg="#00FF0050")

legend.bubble("bottomright", z=max(Data$Density[Data$Species=="A"]), maxradius=0.15, inset=0.02, bg="lightblue",
          txt.cex=0.8, pch=21, pt.bg="#00FF0050")

Проблема, с которой я сталкиваюсь, заключается в том, что размер пузырьков для каждого отдельного участка определяется максимальным значением плотности для каждого вида, поэтому, когда я запускаю этот код для нескольких видов, создавая несколько участков, размер пузырьков на каждом участке не в том же масштабе. Поэтому я хотел знать, могу ли я указать согласованный масштаб для пузырьков на всех моих графиках?


person J. Cee    schedule 14.10.2015    source источник


Ответы (1)


Сначала Вам нужно рассчитать максимум всех видов

totalmax <- max(Data$Density)

Затем для каждого участка вы вычисляете максимум этого вида.

speciesmax <- max(Data$Density[Data$Species=="C"])

Рассчитайте относительный размер пузырьков:

bubblesize = 0.15 * speciesmax/totalmax

И используйте это в своем сюжете:

draw.bubble(Data$Long[Data$Species=="A"],Data$Lat[Data$Species=="A"],
        Data$Density[Data$Species=="A"], maxradius=bubblesize, pch=21, bg="#00FF0050")
person RHA    schedule 14.10.2015
comment
Спасибо, мой математический мозг полностью подвел меня в этом, но это прекрасно!! - person J. Cee; 15.10.2015