没有轴,传说等的ggplot2图

时间:2011-06-29 22:49:46

标签: r ggplot2

我想使用bioconductor的hexbin(我可以做)来生成一个填充整个(png)显示区域的图 - 没有轴,没有标签,没有背景,没有nuthin'。

8 个答案:

答案 0 :(得分:172)

根据我在Chase的回答中的评论,您可以使用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() 。)

答案 1 :(得分:97)

Re:将opts更改为主题等(对于懒惰的人):

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())

答案 2 :(得分:43)

目前的答案不完整或效率低下。这是(也许)实现结果的最短途径(使用 Private Async Sub lstItems_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles lstItems.SelectionChanged Await Task.Delay(1) Dim _frm As frm2 = New frm2 _frm.ClickedItem = lstItems.SelectedItem.ToString _frm.ShowDialog() _frm.Close() _frm = Nothing

theme_void()

结果是:

enter image description here

如果您只想删除标签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="")

答案 3 :(得分:40)

'opts' is deprecated.

ggplot2 >= 0.9.2中使用

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

答案 4 :(得分:1)

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)

答案 5 :(得分:0)

该聚会晚了,但可能会引起您的兴趣……

我发现labsguides规范的组合在许多情况下很有用:

除了网格和背景,您什么都不想要:

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

enter image description here

您只希望隐藏一个或两个轴的刻度标记:

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

enter image description here

答案 6 :(得分:0)

我在这里找不到此解决方案。它使用cowplot软件包将其全部删除:

library(cowplot)

p + theme_nothing() +
theme(legend.position="none") +
scale_x_continuous(expand=c(0,0)) +
scale_y_continuous(expand=c(0,0)) +
labs(x = NULL, y = NULL)

只需注意,可以使用theme.void()这样完成同一件事:

p + theme_void() +
theme(legend.position="none") +
scale_x_continuous(expand=c(0,0)) +
scale_y_continuous(expand=c(0,0)) +
labs(x = NULL, y = NULL)

答案 7 :(得分:-1)

这样做你想要的吗?

 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")