2

stripplot()プロット機能を使用して、いくつかの試行から栄養素の値 (N、P、K など) を比較しようとしています。栄養素ごとに個々の値を並べて表示するのではなく、各栄養素の個別のプロットを表示して、各栄養素内で容易に比較できるようにしたい (たとえば、「試験 A」と「試験 A」の窒素 (N) 値を比較する) 「試行 B」からの窒素値)。このコードは、試行間で簡単に比較できない、並べてプロットを作成します。

foo <- data.frame(conc=rnorm(90),element=rep(c("N","P","K"),each=30),
                  trial=rep(c("Trial_A","Trial_B"),times=45))
stripplot(conc~element|trial,data=foo)

大きなストリッププロットが 1 つだけになるように栄養素の値を点在させる方法はありpch=ますか?

@ BlankUsername: コードの提案に感謝します。ただし、実際には値を点の別々の「列」に並べてプロットしようとしています...したがって、この場合、2回の試行からのN、P、およびKについて、x軸に沿って、この順序: トライアル 1 の N、トライアル 2 の N、トライアル 1 の P、トライアル 2 の P、トライアル 1 の K、トライアル 2 の K... したがって、3 つの栄養素と 2 つのトライアルの場合、2x3 = 6 列になります。両方の試行で値が組み合わされ、記号で区切られている 3 つの列ではありません。この説明が理にかなっていることを願っています。私が作ろうとしているプロットの写真を含めることができれば、私はこの質問に対する答えをすでに持っていると思います:) 私がこのようにしたい理由は、私が試行ごとに多くの値を持つ多くの栄養素があり、はい、

4

1 に答える 1

0

pchあなたの説明から、すべてのデータを1つのストリッププロットに入れ、設定を使用してさまざまな試行を示したいと思います。コードの下に、これを実現する方法の例を示します。基本的には、チルダの式を調整するだけです。

かなり基本的な設定をいくつか使用しましたが、もちろん中心部をカスタマイズできます。すべてのデータを 1 つのプロットにプロットすることはお勧めしません。6 つの異なるタイプのポイントを持つことは目に負担がかかるため、またはデータ間の比較を行う上で簡単ではありません。しかし、その選択は明らかにあなた次第です。

require(lattice)
foo <- data.frame(conc=rnorm(90),element=rep(c("N","P","K"),each=30),
              trial=rep(c("Trial_A","Trial_B"),times=45))

stripplot(conc~element,data=foo,pch=as.numeric(factor(foo$trial)))

ここに画像の説明を入力

更新 コメントに基づいて、可能な解決策は、のggplot代わりに、を使用して次のようになりstripplotます。これは自由にカスタマイズできます。詳細については、この投稿を参照してください。

library(ggplot2)
p<-ggplot(foo, aes(x=element, y=conc, color=trial)) +
  geom_jitter(position=position_dodge(0.5))
p

ここに画像の説明を入力

使用したい場合はstripplot、データを少し変換する必要があると思います。以下を追加できます。

foo$group<-paste(foo$element,foo$trial)
stripplot(conc~group,data=foo,pch=as.numeric(factor(foo$trial)))

ここに画像の説明を入力

于 2015-11-13T10:22:06.417 に答える