我想在R或MATLAB中创建一个简单的散点图,其中涉及两个变量$ x $和$ y $,它们与之相关的错误为$ \ epsilon_x $和$ \ epsilon_y $。
但是,我没有添加错误栏,而是希望在每个$(x,y)$对周围创建一个“阴影框”,框的高度范围从($ y-\ epsilon_y $)到($ y + \ epsilon_y $),框的宽度从($ x-\ epsilon_y $)到($ x + \ epsilon_y $)。
在R或MATLAB中可能吗?如果是这样,我可以使用什么程序包或代码来生成这些图。理想情况下,我希望程序包也支持非对称错误范围。
最佳答案
您可以通过创建以下函数在matlab中进行操作:
function errorBox(x,y,epsx,epsy)
%# make sure inputs are all column vectors
x = x(:); y = y(:); epsx = epsx(:); epsy = epsy(:);
%# define the corner points of the error boxes
errBoxX = [x-epsx, x-epsx, x+epsx, x+epsx];
errBoxY = [y-epsy, y+epsy, y+epsy, y-epsy];
%# plot the transparant errorboxes
fill(errBoxX',errBoxY','b','FaceAlpha',0.3,'EdgeAlpha',0)
end
x
,y
,epsx
和epsy
都可以是 vector 。例:
x = randn(1,5); y = randn(1,5);
epsx = rand(1,5)/5;
epsy = rand(1,5)/5;
plot(x,y,'rx')
hold on
errorBox(x,y,epsx,epsy)
结果: