6

次の形式のデータがあります。

  # repetition, packet, route, energy level
  1, 1, 1, 10.0
  1, 1, 2, 12.3
  1, 1, 3, 13.8
  1, 2, 1, 9.2
  1, 2, 2, 10.1
  1, 2, 3, 11.2
  ...
  50,99,3, 0.01

ここで、すべての繰り返しにわたって、パケットごとのルートごとの箱ひげ図を示すプロットを作成します。したがって、たとえば、x軸はパケットを表し、y軸はエネルギーレベルを表します。x軸の最初の目盛りは、3つのサブセットのデータを含む3つの箱ひげ図を示します。

  subset(data, data$packet == 1 & data$route == 1)
  subset(data, data$packet == 1 & data$route == 2)
  subset(data, data$packet == 1 & data$route == 3)

等々。私はggplot2を使用していますが、箱ひげ図を毎回作成して1つに追加しようとする必要があるのか​​、それともこれを行うための賢い方法があるのでしょうか。

前もって感謝します!M。

4

1 に答える 1

8

を使用している場合はggplot2、 を使用してこれを非常にうまく行うことができます。これによりfacet_wrap、複数の箱ひげ図を並べて作成できます。例えば:

library(ggplot2)
mydata = data.frame(x=as.factor(rep(1:2, 5, each=5)), y=rnorm(50),
        division=rep(letters[1:5], each=10))

print(ggplot(mydata, aes(x, y)) + geom_boxplot() + facet_wrap(~division))

ここに画像の説明を入力

あなたのコードの場合、実際には 2 つの変数で除算する必要があるように見えます (少し不明確です)。ルートで分割してからパケットで分割する場合(例が示唆しているように)、次を使用できますfacet_grid

print(ggplot(data, aes(repetition, energy.level)) + geom_boxplot() + facet_grid(route ~ packet))

ただし、99 個のパケットがあるため、これは最終的に99 個のグラフ幅になることに注意してください。そのため、おそらく別のアプローチを試してみることをお勧めします。

于 2012-09-14T16:18:42.383 に答える