1

私はggplot2の使用にまったく慣れていませんが、それが優れたプロット機能であると聞いています。さまざまなサンプルのリストがあり、3つの機器による各サンプルの観測値があります。それを箱ひげ図のある図に変えたいと思います。図を含めることはできませんが、図の例を作成するためのコードを以下に示します。アイデアは、各機器について、各サンプルの箱ひげ図を含む図を作成することです。

さらに、プロットの横に、各サンプル番号に名前を付ける一種の凡例を作成したいと思います。ggplot2でこれを開始する方法がわかりません。

どんな助けでもありがたいです

サンプル画像を生成するためのRコードは次のとおりです。

#Make data example
Data<-list();
Data$Sample1<-matrix(rnorm(30),10,3);
    Data$Sample2<-matrix(rnorm(30),10,3);
Data$Sample3<-matrix(rnorm(30),10,3);
    Data$Sample4<-matrix(rnorm(30),10,3);

#Make the plots
par(mfrow=c(3,1)) ;
boxplot(data.frame(Data)[seq(1,12,by=3)],names=c(1:4),xlab="Sample number",ylab="Instrument 1");
boxplot(data.frame(Data)[seq(2,12,by=3)],names=c(1:4),xlab="Sample number",ylab="Instrument 2");
boxplot(data.frame(Data)[seq(3,12,by=3)],names=c(1:4),xlab="Sample number",ylab="Instrument 3");
4

1 に答える 1

7

まず、データを別の方法で設定する必要がありますdata.frame。マトリックスのリストではなく、別の方法で設定します。sample、に1つの列、のに1つの列instrument、および観測されたのに1つの列が必要valueです。これが偽のデータセットです:

df <- data.frame(sample = rep(c("One","Two","Three","Four"),each=30), 
                 instrument = rep(rep(c("My Instrument","Your Instrument","Joe's Instrument"),each=10),4),
                 value = rnorm(120))

> head(df)
  sample    instrument       value
1    One My Instrument  0.08192981
2    One My Instrument -1.11667766
3    One My Instrument  0.34117450
4    One My Instrument -0.42321236
5    One My Instrument  0.56033804
6    One My Instrument  0.32326817

3つのプロットを取得するには、ファセットを使用します。箱ひげ図を取得するには、を使用しますgeom_boxplot。コードは次のようになります。

ggplot(df, aes(x=sample,y=value)) + 
  geom_boxplot() + 
  facet_wrap(~ instrument, ncol=1)

ここに画像の説明を入力してください

サンプル番号の凡例を含めるのではなく、名前をサンプル変数に直接入力すると、プロットの下に名前が出力されます。そうすれば、人々は名前に番号を参照する必要がなくなります。各プロットのサンプルがすぐにわかります。ggplotは、デフォルトで要素をアルファベット順に並べていることに注意してください。別の順序が必要な場合は、手動で変更する必要があります。

于 2013-01-19T15:29:11.180 に答える