0

このようなプロットを Matlab で作成することに興味があります。 (出典: 3rs-reduction.co.uk )平均プロット

「このように」とは、2 つのグループを A と B と呼び、前処理と後処理の 2 回観察することを意味します。ここで、プロットは、時間前の A と B のボックス プロットの左側のグループで構成されます。右側のグループは、治療後の A と B の箱ひげ図で構成されており、A プレの平均は線で A ポストの平均にリンクされ、B プレの平均は線で B ポストの平均にリンクされています。 . 色の形状や線 (ボックスではなく) の特定の外観を維持する必要があるという意味ではありません。

boxplot コマンドと「hold on」を使用してそこにたどり着こうとしましたが、すべてを組み合わせる方法がわかりませんでした。具体的には、Matlab boxplot コマンドのように、観測値が行にあり、フィールドが列であり、順序が ((A,pre),(A,post),(B,pre),( B、ポスト)))。

構築するサンプルコード:

simlength = 100;
groupmeans = [.1, .2, .2, .4];
groupstddev = [.05, .05, .05, .05];
simholder = randn(simlength,4);
simholder = repmat(groupmeans ,simlength,1) + simholder     .* repmat(groupstddev ,simlength,1);
boxplot(simholder)

その箱ひげ図の結果 1 と 3、および結果 2 と 4 を積み重ねて、グループ間に線を引くことができれば、すべてのピースをまとめる方法がわからないだけで、とても幸せです。

ありがとう!

4

2 に答える 2

1

次のようなものはどうでしょうか。

x = rand(2, 1);           % ? maybe just leave out?
y = rand(2, 1);           % [mean(Apre), mean(Apost)]
e = rand(2, 1)*.2;        % ? is this maybe [std(Apre), std(Apost)]
errorbar(x, y, e, 'o-');  % You can leave off the x here if you don't need it

hold all

%Now repeat for B
x = rand(2, 1);
y = rand(2, 1);
e = rand(2, 1)*.2;
errorbar(x, y, e, '^-');

legend({'First series', 'Second Series'})
于 2013-07-24T12:50:20.443 に答える
0

ダンの答えは近いものでした (ありがとう!) が、上記のチャートを模倣するために必要なフォーマットの詳細が含まれていませんでした. その方法を理解したら、彼を編集して必要な変更を追加しようとしましたが、編集者は私の変更を気にしませんでした。だからここに私が欲しかったものがあります。

y1 = rand(2, 1);           
e1 = rand(2, 1)*.2;       
errorbar(y1, e1, 'o-');  

hold all

%Now repeat for B
y2 = rand(2, 1);
e2 = rand(2, 1)*.2;
errorbar(y2, e2, '^-');
plotrange = [y1-e1;y2-e2;y1+e1;y2+e2];
yplotmin = min(plotrange)* .5;
yplotmax = max(plotrange) * 1.5;

legend({'Control', 'Treatment'})

set(gca,'YLim',[yplotmin yplotmax])
set(gca,'XLim',[.5 2.5])
set(gca,'XTick',1:2)
set(gca,'XTickLabel',{'Pre-treatment', 'Post-treatment'});

違いの箱ひげ図のようなプロットの違い

于 2013-07-29T13:28:35.937 に答える