3

私は研究論文を書いていますが、データセットからこのようなものをプロットしたいと思います

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

基本的には、各ビンの平均値を示す最も低い曲線を持つMatlab散布図です。

Googleを2日間検索しましたが、それを行うための解決策やサンプルコードがまだ見つかりませんでした。

StackOverflowが私の最後の手段になりました:)

4

2 に答える 2

2

これは私が思いつく最も単純なコードです。これは、x および y ベクトルにデータがあることを前提としています。

%adjust bins accordingly, or add a line that calculates them based on range.
bins = -0.5:0.01:0.5;
nBins = length(bins);

for index = 1:(nBins-1)

  binVec = (x >= bins(index) & x < bins(index+1));
  lowess(index) = mean(y(binvec));

end
%note that bins are shifted by one half step.
plot(x,y,'.',bins+0.005,lowess,'--r');

これをベクトル化することは可能ですが、その価値はありません。少なくとも私が見つけた方法は、それを読めなくし、仮にあったとしてもわずかに効率的にするでしょう.

于 2012-12-07T00:34:41.210 に答える
1

大まかな答えは、http://www.mathworks.com/matlabcentral/fileexchange/13352を使用して密度散布図histcを作成し、matlab で使用して適切な解像度で lowess 曲線を生成しhold plot、密度プロットで使用して描く

于 2012-12-07T15:22:18.137 に答える