R 完全移除包裹标签

R 完全移除包裹标签,r,graphics,ggplot2,R,Graphics,Ggplot2,我想完全删除刻面的标签,以创建一种闪闪发光的效果,因为对于观众来说,标签是不相关的,我能想到的最好办法是: library(MASS) library(ggplot2) qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + facet_wrap(~ID) + theme(strip.text.x = element_text(size=0)) 那么,我可以完全去掉

我想完全删除刻面的标签,以创建一种闪闪发光的效果,因为对于观众来说,标签是不相关的,我能想到的最好办法是:

library(MASS)
library(ggplot2)
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + 
     facet_wrap(~ID) + 
     theme(strip.text.x = element_text(size=0))
那么,我可以完全去掉(现在是空白的)strip.background来为“小火花”留出更多的空间吗


或者,有没有更好的方法可以让大量的二值时间序列产生这种“闪光”效果?

对于ggplot v2.1.0或更高版本,请使用
element\u blank()
删除不需要的元素:

library(MASS) # To get the data
library(ggplot2)

qplot(
  week,
  y,
  data = bacteria,
  group = ID,
  geom = c('point', 'line'),
  xlab = '',
  ylab = ''
) + 
facet_wrap(~ ID) + 
theme(
  strip.background = element_blank(),
  strip.text.x = element_blank()
)
在这种情况下,您试图删除的元素称为
strip


使用ggplot grob布局的备选方案 在较早版本的
ggplot
(v2.1.0之前)中,条形文本占据GTTable布局中的行

element\u blank
删除文本和背景,但不删除行占用的空间

此代码将从布局中删除这些行:

library(ggplot2)
library(grid)

p <- qplot(
  week,
  y,
  data = bacteria,
  group = ID,
  geom = c('point', 'line'),
  xlab = '',
  ylab = ''
) + 
facet_wrap(~ ID)

# Get the ggplot grob
gt <- ggplotGrob(p)

# Locate the tops of the plot panels
panels <- grep("panel", gt$layout$name)
top <- unique(gt$layout$t[panels])

# Remove the rows immediately above the plot panel
gt = gt[-(top-1), ]

# Draw it
grid.newpage()
grid.draw(gt)
库(ggplot2)
图书馆(网格)

p据我所知,桑迪的答案是正确的,但我认为值得一提的是,没有刻面的地块的宽度和去除刻面的地块的宽度似乎有一点差别


除非你正在寻找它,否则它并不明显,但是如果你使用威克姆在书中推荐的视口布局来堆叠图,那么差别就会变得明显

我正在使用ggplot2版本1,所需的命令已更改。 而不是

ggplot() ... + 
opts(strip.background = theme_blank(), strip.text.x = theme_blank())
您现在使用

ggplot() ... + 
theme(strip.background = element_blank(), strip.text = element_blank())

有关更多详细信息,请参见

桑迪的更新答案似乎不错,但可能已被ggplot的更新淘汰?据我所知,以下代码(桑迪原始答案的简化版本)复制了肖恩的原始图形,没有任何额外空间:

library(ggplot2)
library(grid)
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + 
 facet_wrap(~ID) + 
 theme(strip.text.x = element_blank())

我使用的是ggplot 2.0.0。

你能用一个例子详细说明一下吗?我们来试试。我使用ggplot的“钻石”数据集,因此它应该适用于任何人。请注意,刻面图的右边距比未刻面图的右边距稍窄。这不是一个好的比较,因为它从刻面包裹(OP的问题中,面板在顶部)切换到刻面网格(侧面有面板测试)。关键问题是面板文本是不可压缩的:如果您调整OP问题中qplot的窗口大小,您很容易看到面板文本可能导致的问题。由于x轴通常具有以前已知的值,而y轴通常具有以前未知的值,这尤其令人遗憾。任何其他人在应用(条带垫,1,最大高度)中出现
错误:尺寸(x)必须具有正长度