私は研究論文を書いていますが、データセットからこのようなものをプロットしたいと思います
基本的には、各ビンの平均値を示す最も低い曲線を持つMatlab散布図です。
Googleを2日間検索しましたが、それを行うための解決策やサンプルコードがまだ見つかりませんでした。
StackOverflowが私の最後の手段になりました:)
私は研究論文を書いていますが、データセットからこのようなものをプロットしたいと思います
基本的には、各ビンの平均値を示す最も低い曲線を持つMatlab散布図です。
Googleを2日間検索しましたが、それを行うための解決策やサンプルコードがまだ見つかりませんでした。
StackOverflowが私の最後の手段になりました:)
これは私が思いつく最も単純なコードです。これは、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');
これをベクトル化することは可能ですが、その価値はありません。少なくとも私が見つけた方法は、それを読めなくし、仮にあったとしてもわずかに効率的にするでしょう.
大まかな答えは、http://www.mathworks.com/matlabcentral/fileexchange/13352を使用して密度散布図histc
を作成し、matlab で使用して適切な解像度で lowess 曲線を生成しhold plot
、密度プロットで使用して描く