Как изменить масштабирование плотности контурного графика ggplot2 stat_density_2d? - PullRequest
3 голосов
/ 15 апреля 2020

Я работаю с таблицей из двух столбцов, из которой пытаюсь сделать график контура плотности. «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 Ответ

3 голосов
/ 15 апреля 2020

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

Играя с границами, просто устанавливая ограничения на цвет / заливку и следя за тем, чтобы 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)

Создано в 2020-04-15 с помощью представительного пакета (v0.3.0)

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

aes(fill = after_stat(level * 10))

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...