oob = scale :: squish не работает с scale_size_continuous в ggplot2

Это относится к этому вопросу здесь: Настроить размер geom_point так, чтобы на графике отображались большие значения, но они не отображались больше в ggplot2?

В частности, в отношении ответа @Axeman

Я не мог прокомментировать этот вопрос, поэтому мне пришлось задать новый вопрос.

Я хочу добиться сжатия для размера geom_point, но опция oob=scales::squish не работает с scale_size_continuous. Я не уверен, что еще мне не хватает.

Был бы признателен за любую помощь. Вот код, который я пробовал:

xx = ggplot(pcm, aes(x = variable, y = TF)) + 
  geom_point(aes(size = value, fill=value), shape = 21) + 
  scale_size_continuous(range=c(1, 12),
    limits = c(-2, 2),
    oob = scales::squish)

Кроме того, я хочу добавить, что я не могу использовать scale_size_area, как ответил @Axeman, потому что я не хочу, чтобы значения 0 отображались в точках с размером 0. Диапазон моих данных составляет прибл. от -1,7 до +3. Я хочу, чтобы наименьший размер был выделен для наименьшего отрицательного значения. Спасибо.


person user3116101    schedule 11.08.2020    source источник


Ответы (1)


Это проблема, если обработать трансформацией на value?

Вот я только представил, как могут выглядеть ваши данные:

pcm <- data.frame(variable = runif(100),
                  TF       = runif(100),
                  value    = runif(100, -1.7, 3))

Вот сюжет

library(ggplot2)

ggplot(pcm, aes(x = variable, y = TF)) + 
    geom_point(aes(size = pmax(pmin(value, 2), -2), 
                   fill = value), 
               shape = 21) +
    labs(size = "value")

введите описание изображения здесь

Дайте мне знать, возможно, я смогу улучшить свой ответ.

Также я бы посоветовал вам сделать пару обновлений, чтобы улучшить читаемость вашей диаграммы, но решать вам.

ggplot(pcm, aes(x = variable, y = TF)) + 
    geom_point(aes(size = pmax(pmin(value, 2), -2), 
                   colour = value), 
               alpha = 0.6) +
    labs(title = "Dots and colours",
         size = "value") +
    theme_minimal()

введите описание изображения здесь

person Edo    schedule 11.08.2020
comment
Спасибо! Я попробую ваши предложения и вернусь, если у меня возникнут дополнительные вопросы. Я также приму ответ после того, как попробую. Спасибо еще раз! - person user3116101; 17.08.2020