Ggplot2 без осей, легенд и т.д.

Я хочу использовать гексагон bioconductor (который я могу сделать), чтобы создать график, который заполняет всю область отображения (png) - без осей, без меток, без фона, без nuthin '.

Ответ 1

Согласно моему комментарию в ответе Чейз, вы можете удалить много этого материала, используя element_blank:

dat <- data.frame(x=runif(10),y=runif(10))

p <- ggplot(dat, aes(x=x, y=y)) + 
        geom_point() +
        scale_x_continuous(expand=c(0,0)) + 
        scale_y_continuous(expand=c(0,0))   

p + theme(axis.line=element_blank(),axis.text.x=element_blank(),
          axis.text.y=element_blank(),axis.ticks=element_blank(),
          axis.title.x=element_blank(),
          axis.title.y=element_blank(),legend.position="none",
          panel.background=element_blank(),panel.border=element_blank(),panel.grid.major=element_blank(),
          panel.grid.minor=element_blank(),plot.background=element_blank())

Похоже, что все еще есть небольшой запас по краю полученного .png, когда я его сохраняю. Возможно, кто-то еще знает, как удалить этот компонент.

(Историческое примечание: поскольку ggplot2 версия 0.9.2, opts устарела. Вместо этого используйте theme() и замените theme_blank() на element_blank().)

Ответ 2

Re: изменение выбора темы и т.д. (для ленивых людей):

theme(axis.line=element_blank(),
      axis.text.x=element_blank(),
      axis.text.y=element_blank(),
      axis.ticks=element_blank(),
      axis.title.x=element_blank(),
      axis.title.y=element_blank(),
      legend.position="none",
      panel.background=element_blank(),
      panel.border=element_blank(),
      panel.grid.major=element_blank(),
      panel.grid.minor=element_blank(),
      plot.background=element_blank())

Ответ 3

'opts' is deprecated.

в ggplot2 >= 0.9.2 используйте

p + theme(legend.position = "none") 

Ответ 4

Текущие ответы либо неполные, либо неэффективные. Вот (возможно) самый короткий путь для достижения результата (используя theme_void():

data(diamonds) # Data example
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) +
      theme_void() + theme(legend.position="none")

Результат:

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


Если вам интересно просто удалить ярлыки , labs(x="", y="") делает трюк:

ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + 
      labs(x="", y="")

Ответ 5

Это делает то, что вы хотите?

 p <- ggplot(myData, aes(foo, bar)) + geom_whateverGeomYouWant(more = options) +
 p + scale_x_continuous(expand=c(0,0)) + 
 scale_y_continuous(expand=c(0,0)) +
 opts(legend.position = "none")

Ответ 6

xy <- data.frame(x=1:10, y=10:1)
plot <- ggplot(data = xy)+geom_point(aes(x = x, y = y))
plot
panel = grid.get("panel-3-3")

grid.newpage()
pushViewport(viewport(w=1, h=1, name="layout"))
pushViewport(viewport(w=1, h=1, name="panel-3-3"))
upViewport(1)
upViewport(1)
grid.draw(panel)