Как изменить масштабирование плотности контурного графика ggplot2 stat_de density_2d?

Я работаю с двухколоночной таблицей, из которой пытаюсь построить контур плотности. "HiChIP_VillusvsCrypt" - это ось x, а "RNAseq_VillusvsCrypt" - ось y. Если вы видите на этом прикрепленном изображении, есть легенда с масштабированием плотности от 0 до 0,2. Я хотел бы иметь возможность поиграть с этим масштабированием, если это возможно (то есть установить границы между 0 и 0,1).Ценю любой совет!

library(ggplot2)
df1 <- data.frame(HNF4_Looping_HiChIPvsRNASeq_VillusvsCrypt$HiChIP_log2FC_VillusvsCrypt, HNF4_Looping_HiChIPvsRNASeq_VillusvsCrypt$RNAseq_log2FC_VillusvsCrypt)
ggplot(df1, aes(df$HNF4_Looping_HiChIPvsRNASeq_VillusvsCrypt.HiChIP_log2FC_VillusvsCrypt, df$HNF4_Looping_HiChIPvsRNASeq_VillusvsCrypt.RNAseq_log2FC_VillusvsCrypt))+                       
  stat_density_2d(aes(fill = ..level.. ), geom = "polygon")+scale_x_continuous(name="HiChIP_VillusvsCrypt", limits=c(-4,4))+scale_y_continuous(name="RNASeq_VillusvsCrypt", limits=c(-4,4))

1 ответ

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

Играя с границами, просто устанавливая ограничения на цвет / заливку и проверяя, oob аргумент уместен.

Допустим, у нас есть следующий сюжет.

library(ggplot2)

myplot <- ggplot(faithful, aes(eruptions, waiting)) +
  stat_density_2d(aes(fill = after_stat(level)),
                  geom = "polygon") +
  xlim(1, 6) +
  ylim(35, 100)
myplot

Мы можем поиграть с ограничениями следующим образом:

myplot + scale_fill_continuous(limits = c(0, 0.01), 
                               oob = scales::squish)

Создано 15.04.2020 с помощью пакета REPEX (v0.3.0)

Если вы хотите установить множитель для базовых значений, вы можете использовать aes() функционируют следующим образом:

aes(fill = after_stat(level * 10))

Обратите внимание, что after_stat()функция требует ggplot2 v3.3.0. Более ранние версии используютstat() или даже более старый синтаксис - использовать ..myvariable...

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