我正在写一篇研究论文,我想从我的数据集中画出类似这样的东西
基本上,它是一个Matlab散点图,其中有一条低曲线,显示每个bin的平均值
我已经在Google上搜索了两天了,还没有找到一个解决方案或一段示例代码来做到这一点
堆栈溢出现在是我最后的手段:)
发布于 2012-12-07 08:34:41
这是我能想到的最简单的代码。这里假设您的数据是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-07 23:22:18
粗略的回答是,使用matlab中的http://www.mathworks.com/matlabcentral/fileexchange/13352绘制密度散点图,并使用matlab中的histc
以适当的分辨率生成低值曲线,然后使用hold plot
绘制密度图。
https://stackoverflow.com/questions/13754516
复制相似问题