2

パッケージ directlabels を使用してプロットにラベルを付けたいと思います。ただし、ラベルは各ポイントのIDにしたいと思います。どの要因にラベルを付けるかを選択する方法は本当にないのですか、それとも見逃していましたか?

library(ggplot2)
library(directlabels)
df <- structure(
    list(id = 1:10,
         group = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L),
         .Label = c("A", "B"),
         class = "factor"),
         value1 = c(4, 1, 6, 2, 5, 7, 3, 2, 5, 8),
         value2 = c(6, 2, 6, 2, 8, 9, 7, 5, 2, 6)
         ),
.Names = c("id", "group", "value1", "value2"),
row.names = c(NA, -10L),
class = "data.frame")

p1 <- ggplot(df, aes(x=value1, y=value2)) + geom_point(aes(colour=group))
direct.label(p1)

ここに画像の説明を入力

4

2 に答える 2

5

最後に呼び出されるショーのコードをdirect.label.ggplot()調べます。geom_dl()この関数は、美しいマッピングとポジショニング方法を想定しています。デフォルトで使用されるポジショニング メソッドは、コール スタック検査を使用する の戻り値でありdefault.picker("ggplot")、この場合は を呼び出すことと同等defaultpf.ggplot("point",,,)です。以下は私にとってはうまくいきます:

p1 <- ggplot(df, aes(x=value1, y=value2)) +
  geom_point(aes(colour=group)) +
  geom_dl(aes(label = id), method = defaultpf.ggplot("point",,,))
p1

プロット

(もう電話する必要はありdirect.label()ません。)

パッケージのドキュメントdirectlabelsは確かに少し不足しています。

于 2015-09-30T09:48:55.447 に答える
1

次のように、カスタムの位置メソッドを記述する必要があります。

label_all <- list( dl.trans(x = x + 0.5, y = y + 0.5), # shift every point up and right
                   gapply.fun(d) ) # include all points
direct.label(p1, method = label_all)

ここに画像の説明を入力

別の例については、ドキュメントの「配置方法をリストとして指定する」を参照してください。

于 2015-09-30T09:47:34.017 に答える