101

ファセットのラベルを完全に削除して、一種のスパークライン効果を作成したいと思います。オーディエンスに関しては、ラベルは無関係であるため、私が思いつく最善の方法は次のとおりです。

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 を完全に取り除くことができますか?

または、このような多数のバイナリ値の時系列に対してこの「スパークライン」効果を得るより良い方法はありますか?

4

4 に答える 4

156

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図


ggplotgrobレイアウトを使用する代替

古いバージョン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)
于 2012-05-11T08:30:51.327 に答える
26

ggplot2 バージョン 1 を使用していますが、必要なコマンドが変更されました。それ以外の

ggplot() ... + 
opts(strip.background = theme_blank(), strip.text.x = theme_blank())

あなたは今使っています

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

詳細については、http://docs.ggplot2.org/current/theme.htmlを参照してください。

于 2014-07-31T11:45:50.350 に答える
8

Sandy の更新された回答は良いようですが、ggplot の更新によって廃止された可能性がありますか? 私が言えることから、次のコード (Sandy の元の回答の簡略化されたバージョン) は、Sean の元のグラフを余分なスペースなしで再現します。

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を使用しています。

于 2016-03-15T14:43:54.543 に答える
4

私が知る限り、Sandyの答えは正しいですが、ファセットのないプロットの幅とファセットが削除されたプロットの幅には小さな違いがあるように見えることに言及する価値があると思います.

探していない限り明らかではありませんが、Wickham が著書で推奨しているビューポート レイアウトを使用してプロットを積み重ねると、違いが明らかになります。

于 2012-10-22T02:12:38.353 に答える