web-dev-qa-db-ja.com

軸、凡例などのないggplot2プロット

バイオコンダクターのhexbin(これができます)を使用して、(png)表示領域全体を埋めるプロットを生成したいと思います-軸、ラベル、背景、ナッシンなし.

121
user1320487

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()に置き換えてください。)

173
joran

再:テーマなどにオプトを変更する(怠け者の場合):

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

現在の回答は、不完全または非効率的です。これが(おそらく)結果を達成する最短の方法です(theme_void()を使用:

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

結果は次のとおりです。

enter image description here


labelsを削除するだけの場合は、labs(x="", y="")がトリックを行います。

ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + 
      labs(x="", y="")
45
luchonacho
'opts' is deprecated.

ggplot2 >= 0.9.2で使用

p + theme(legend.position = "none") 
40
Jonas Stein
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)
1
amaurel