0

縦棒グラフを作成したい。これは私のコードです:

bar (x, sensiv);
title ('Promedio X')
xlabel('Nm')
ylabel('Refl.')

問題はそれが階段のプロットのように見えることです。(x、sensiv、'stacked')を追加しようとしましたが、機能しません。次の画像でわかるように、グループ化されているように見えます。

グラフhttp://imageshack.us/a/img689/9449/capturawv.jpg

x軸のせいだと思いますが、変更できませんでした。どうすればいいですか?誰かが私がそれを行う方法を知っていますか?

編集

コリンありがとう!ズームしようとしましたが、あなたが何を意味するのか理解しました。slaytonとあなたが言ったように、さまざまな値で試しました。

値が0.000001のグラフ 値1のグラフ 多分それは私がプロットをコーディングした方法だと思います、それは可能ですか?

abc=0;
for p=(61:201)
    abc(p)=out1_c;
end
for p=(151:301)
    abc(p)=out2_c;
end
for p=(231:380)
    abc(p)=out3_c;
end
for p=(381:596)
    abc(p)=out4_c;
end
for p=(1152:1531)
    abc(p)=out5_c;
end
for p=(1651:2051)
    abc(p)=out7_c;
end
for p=(2052:2151)
    abc(p)= 0;
end
4

2 に答える 2

1

棒グラフの棒の幅のデフォルト値は0.8です。したがって、現在幅を指定していない場合は、各棒の間にギャップがあるはずです。これは非常に明白に聞こえますが、作成された棒グラフを拡大してみましたか?一部のデータセットでは、bar関数は階段プロットのように見えるプロットを返しますが、十分にズームインすると実際にはギャップがあります。この場合、slaytonが提案するように、widthパラメータをいじることで、必要なギャップを取得できるはずです。

編集

わかった。まず最初に。追加情報を投稿したい場合は、新しい回答として投稿するのではなく、質問に追加する必要があります。これを行うには、ページの質問がある場所のすぐ下にある編集ボタンをクリックします。読みやすくするために、ここで行ったように、編集の前に大文字の太字の見出し「EDIT」を付けることができます。可能であれば、今すぐ質問に追加情報を戻し、回答を削除してみてください。

第二に、私は正直に言うと、あなたが投稿した追加情報はやや混乱していました。しかし、私はあなたが今何を望んでいるのか理解していると思います。7つのバーがout1_c、out2_c、...、out7_c(追加情報から取得した変数名)の高さまで到達し、各バーの間に小さなギャップがあり、x軸が450〜550の間隔を(おおよそ)反映するようにします。 、550-650など。

7つのバーが必要な場合は、入力に7つの要素のみを含める必要があります。セットする:

y = [out1_c; out2_c; out3_c; out4_c; out5_c; out6_c; out7_c];

yは、バーがy軸上で到達する高さを示します。x軸上にバーを配置するには、7つの要素も含むベクトルxを定義します。各要素は、x軸上にバーを配置する中点を示します。例えば:

x = [100; 200; 300; 400; 500; 600; 700];

次に、を使用しますbar(x, y)。これで始められるはずです。

あなたが投稿したコードの最後のポイントは、実際にはループを完全に回避することができます:ベクトル化について読んでください。ただし、ループを主張する場合、最初の最も重要なルールは、ベクトル/行列を事前に割り当てることです。コードabcでは、スカラー(1行1列の行列)として開始しますが、すべてのpについて、インデックスpに要素を追加します。バックグラウンドで実際に発生しているのは、すべてのpについてであり、matlabはabcメモリ内の電流を破棄し、追加の要素を使用してゼロから再構築します。ご想像のとおり、これによりコードの速度が大幅に低下します。

于 2012-09-19T03:43:03.430 に答える
0

0から1までの値をに渡すことにより、個々のバーの幅を設定できますbar。1を渡すと、バーの間にスペースがあってはならないことを示します

bar(x,y,1)

1未満のものを渡すと、バーのサイズが小さくなり、個々のバーの間に間隔ができます。

bar(x,y,.5)
于 2012-09-18T13:30:16.083 に答える