1

データを 2 つの変数でグループ化する ggplot2 プロットがあり、ラベル テキストのフォーマット方法を制御したいと考えています。この質問は、nlme パッケージの Oxboys データ セットを使用して以下に示されています。「件名」と「ラベル」の組み合わせによって「件名」が一意に識別されるように、データに「ラベル」という列を追加しました。私が実際に扱っているデータでは、関心のある 2 つの変数は、グリッド上のポイントを一意に識別する x、y 座標であるため、以下の出力フォーマットの奇妙な提案です。

上の凡例項目を例にとると、「10 10」または「10,10」または「10ºN, 10ºW」* と表示されるようにこれを再フォーマットするにはどうすればよいでしょうか? sprintf() を利用する方法はありますか、それとも完全に別の方法を考えられますか?

1 つの回避策は、データ フレームに 1 つの新しい列を作成して、グループを定義し、ラベルを提供することです。それは、gglpot で直接書式設定を行うよりも手間がかからないでしょうか?

library(nlme)
library(ggplot2)
df <- transform(Oxboys, label = Subject)
p <- ggplot(df, aes(x = Occasion, y = height,
                    group = interaction(Subject, label),
                    color = interaction(Subject, label)))
p + geom_line()

ここに画像の説明を入力

*凡例のタイトルを変更する回答のボーナス ポイント。

4

2 に答える 2

0

まさにこの目的のために書かれたと私が信じているrevalueHadley のパッケージでも使用できます。plyr

library(plyr)

# Rename Subject column
replace.Subject <- sapply(levels(df$Subject), function(x) paste0(x, " N"))
df$Subject <- revalue(df$Subject, replace.Subject)

# Rename label column
replace.label <- sapply(levels(df$label), function(x) paste0(x, " W"))
df$label <- revalue(df$label, replace.label)
于 2013-11-04T22:46:21.427 に答える