我正在寫論文,並且想從我的數據集劇情是這樣的Matlab的散點圖與LOWESS曲線
基本上這是一個Matlab的散點圖用LOWESS曲線顯示了在平均值每個箱
我一直在尋找谷歌2天,但沒有找到一個解決方案或樣例代碼爲做到這一點尚未
堆棧溢出現在是我的最後一招:)
我正在寫論文,並且想從我的數據集劇情是這樣的Matlab的散點圖與LOWESS曲線
基本上這是一個Matlab的散點圖用LOWESS曲線顯示了在平均值每個箱
我一直在尋找谷歌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');
可以對此進行矢量化,但它不值得。至少我發現的方式會使它變得不可讀,並且稍微有效一些。
達斯汀我看到你的觀點, – HuyNA
這是否適合你?如果是這樣,你可以請點擊選擇它作爲答案? – dustincarr
對不起達斯汀,我不知道爲什麼我的評論被打斷,我的意思是我看到你的觀點,我能夠修改你的代碼來提出解決方案。謝謝 – HuyNA
粗略的答案,就是使用http://www.mathworks.com/matlabcentral/fileexchange/13352做密度散點圖,並使用histc
在MATLAB中產生在適當的分辨率LOWESS曲線,並使用hold plot
您密度圖繪製
嗨,約翰,這是一個優雅的解決方案,但我發現smoothhist2D不支持對數座標軸,這是我的情況。不過,我喜歡使用histc來計算每個bin中的值,謝謝你的2cent :) – HuyNA
我認爲[這](http://www.mathworks.com/matlabcentral/fileexchange/19506-binned-scatter-plot)做的很好你在找什麼/正在尋找 – Arthur