Как изменить масштабирование плотности контурного графика 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..
.