Манхэттенский участок будет сохранен на прозрачном фоне - PullRequest
0 голосов
/ 18 декабря 2018

Имейте на Манхэттене заговор, попробуйте сохранить его с помощью ggsave:

library(qqman)
MH <- manhattan(gwasResults2, chr="CHR", bp="BP", snp="SNP", p="P", 
                     col = c("chartreuse2", "darkorange1", "gold1"),ylim=c(0,-log10(1e-06)), chrlabs = NULL,
                     suggestiveline = -log10(1e-03), genomewideline = -log10(1e-05),
                     highlight = NULL, logp = TRUE, annotatePval = NULL,
                     annotateTop = TRUE, main='DWStem') + theme_bw() + theme(panel.background = element_rect(fill = "transparent",colour = NA),
                                                                             plot.background = element_rect(fill = "transparent",colour = NA))
ggsave("DWSte.png",MH, bg = "transparent")

Файл сгенерирован, но полностью пустой, я имею в виду, что сюжет не идет.

Любые идеи!?

Спасибо:)

1 Ответ

0 голосов
/ 18 декабря 2018

Кажется, что функция manhattan из пакета qqman не совместима с ggplot2:ggsave, поскольку использует базовую графику, а не grid графику.Если хотите, проверьте код функции manhattan с помощью getAnywhere(manhattan).

Попробуйте вместо этого:

library(qqman)
library(grid)
library(gridGraphics)
library(ggplot2)

# your plot, but without the ggplot2 theme lines (they do nothing anyways)
manhattan(gwasResults, chr="CHR", bp="BP", snp="SNP", p="P", 
          col = c("chartreuse2", "darkorange1", "gold1"),
          ylim = c(0, -log10(1e-06)), chrlabs = NULL,
          suggestiveline = -log10(1e-03), genomewideline = -log10(1e-05),
          highlight = NULL, logp = TRUE, annotatePval = NULL,
          annotateTop = TRUE, main='DWStem')
# Transform the base plot to grobs, so that is compatible with grid and, therefore ggsave
p <- recordPlot()
g <- grid.grabExpr(grid.echo(p))
ggsave("DWSte.png", g, bg = "transparent")

В качестве альтернативы, этот учебник , кажется, даетggplot2 решение.

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