54

geom_text を使用して、散布図の外側の点にラベルを付けます。定義上、これらのポイントはキャンバスの端に近い傾向があります。通常、キャンバスの端に重なる少なくとも 1 つの単語があり、役に立たなくなります。

明らかに、これは以下のケースでは手動で解決できます+ xlim(c(1.5, 4.5)):

# test
df <- data.frame(word = c("bicycle", "tricycle", "quadricycle"),
                 n.wheels = c(2,3,4),
                 utility = c(10,6,7))
ggplot(data=df, aes(x=n.wheels, y=utility, label=word))  + geom_text() + xlim(c(1.5, 4.5))

トライク

ただし、これは理想的ではありません。

  1. 自動化されていないため、多くのプロットを作成する場合はプロセスが遅くなります
  2. 正確ではありません。つまり、単語の端とキャンバスの端の間の距離は、常に同じではないということです。

この問題を検索しても解決策が見つからず、Hadley Wickham は ggplot2 のヘルプ ページでラベルが半分にカットされていることに満足しているようです (私は Hadley を知っています。これらは単なる例です ;)

4

4 に答える 4

63

ggplot 2.0.0ではhjust、特に. できること:vjustgeom_text()"inward"

ggplot(data=df, aes(x=n.wheels, y=utility, label=word))  + 
  geom_text(vjust="inward",hjust="inward")

ここに画像の説明を入力

于 2016-03-21T11:31:33.923 に答える
19

クリッピングをオフにすることができます。あなたの例では、それはうまく機能します。

p <- ggplot(data=df, aes(x=n.wheels, y=utility, label=word))  + geom_text() 
gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name == "panel"] <- "off"
grid::grid.draw(gt)

クリッピングオフ

于 2014-09-14T22:02:09.640 に答える