1

グラフの x 軸に列 (1 つの変数) に対応するラベルを追加しようとしています。この変数列からラベルを追加するにはどうすればよいですか?

次のテーブルがあるとします。時間、治療、導電率の 3 つの列があります。boxplot グラフを作成しました (まだ十分なポイントがなく、新しいユーザーであるためアップロードできません)。プロットは治療ごとに 3 つのボックスを示していますが、各ボックスのラベルには時点と治療の両方があります。つまり、EV 治療の場合: 3 つのボックスのそれぞれに「17.EV、19.EV、21.EV」。治療名だけを含めるにはどうすればよいですか?

Time    Treatment   Conductivity
17  EV  47.1
17  EV  41.5
17  EV  53.1
17  EV  57.5
19  EV  53.2
19  EV  68.8
19  EV  69.4
19  EV  28.6
21  EV  56
21  EV  72.9
21  EV  73
21  EV  30
17  Z1a 86
17  Z1a 108
17  Z1a 81.1
17  Z1a 60.5
19  Z1a 74
19  Z1a 90
19  Z1a 109
19  Z1a 98
21  Z1a 84
21  Z1a 96.3
21  Z1a 114
21  Z1a 109.8
17  Z1b 53.3
17  Z1b 60.6
17  Z1b 56.2
17  Z1b 40.5
19  Z1b 61.2
19  Z1b 69.1
19  Z1b 64.1
19  Z1b 49.6
21  Z1b 63.5
21  Z1b 75.8
21  Z1b 73.3
4

2 に答える 2

1

次のようなコードを使用していると思います。

boxplot(data=dat, Conductivity ~ Treatment + Time)

ggplot2パッケージの大ファンです。そして、それで問題を解決します。

解決策は迅速かつ簡単です!

library(ggplot2)

dat <- read.table('clipboard', header=T)
ggplot(dat, aes(colour=factor(Time), x=Treatment, y = Conductivity))+geom_boxplot()
于 2012-03-06T00:06:49.290 に答える
0

?boxplotnames引数を参照してください:

names: 各 boxplot の下に出力されるグループ ラベル。文字ベクトルまたは式にすることができます (plotmath を参照)。

したがって、次のことができます。

boxplot(Conductivity ~ Treatment + Time, 
        names=rep(levels(dat$Treatment),each=3), 
        data=dat)

とがlevels(dat$Treatment)返さc("EV","Z1a","Z1b")rep(xxx,each=3)ますc("EV","EV","EV","Z1a","Z1a","Z1a","Z1b","Z1b","Z1b)(boxplot が 9 つあるため、9 つの名前が必要です)。

3 つの boxplots ごとに 1 つの名前だけが必要な場合 - ベース グラフィックスでそれを行う方法がわかりません。おそらくggplot2orlatticeグラフィックスを使用する必要があります。

余談ですが、9 つの箱ひげ図 (つまり、(治療、時間) のペアごとに 1 つ) を作成している場合、本当に箱ひげ図から「時間」情報を削除しますか? その場合、特定の箱ひげ図がどの時間のものであるかを判断することは不可能になりますか?

于 2012-03-06T01:03:40.603 に答える