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

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

所以我可以go 掉(现在是空白的)纸条.背景完全是为了给"spark 线"留出更多空间?

或者,对于这样大量的二值时间序列,有没有更好的方法来获得这种"sparkline"效应?

推荐答案

对于ggplot v2.1.0或更高版本,使用element_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.

ggplot2 figure without panel titles


Alternative using ggplot grob layout

在旧版本的ggplot(v2.1.0之前)中,条形文本占据gtable布局中的行.

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

R相关问答推荐

当使用stat_summary()+ after_stat()在图表上标记中位数/均值时,如何整齐地定位geom_text标签

使用log 10转换绘制geom_smooth

修改dDeliverr中列表列的最后一个元素

R中的枢轴/转置

使用R的序列覆盖

在位置周围设定一个半径并识别该半径内的其他位置

当月份额减go 当月份额

如何从像glm这样的模型中提取系数表的相关性?

在使用bslb和bootstrap5时,有没有办法更改特定dt行的 colored颜色 ?

R Read.table函数无法对制表符分隔的数据正常工作

为什么我使用geom_density的绘图不能到达x轴?

R如何计算现有行的总和以添加新的数据行

将标识符赋给事件序列,避免错误观察

从R中发出的咕噜声中的BUG?

R中Gamma回归模型均方误差的两种计算方法不一致

将统计检验添加到GGPUBR中的盒图,在R

SHILINY中DT列的条件着色

快速合并R内的值

访问数据帧中未定义的列时出现R错误

ggplot斜体轴刻度标签中的单个字符-以前的帖子建议不工作