1

我有2个矩阵:

X = [-1 -4 5 6]  ;
Y = [3 20 300 2] ;    %   Always > 0
scatter(x,y,4^2)

默认情况下,Scatter 不会强制 X 和 Y 在原点 (0,0) 交叉。有没有办法做到这一点?请告诉我。

4

2 回答 2

1

没有内置函数可以做到这一点

如果您不想使用上面链接提供的非常基本的工具,文件交换上有一些很好的解决方案,一个更简单一个更强大,尽管后者使用了一些未记录的功能。

于 2012-09-07T16:35:23.897 回答
0

如果您希望 x 和 y 网格线通过原点(如例中),我认为没有简单的方法可以做到(这里有关于类似问题的讨论。在 MATLAB 文件交换中,有oaxes似乎可以满足您的需求。您必须参考其内部文档。

另一种方法是手动设置 x/y 限制并自己绘制一些轴:

%Set limits
xlim([-10 10]);
ylim([-300 300]);

hold on;
%Plot data
scatter(x, y);
%Plot axes
plot([0 0], [-300 300], 'k');
plot([-10 10], [0 0], 'k');
hold off;

但这只会绘制一个黑色十字,没有刻度/数字等。

于 2012-09-07T16:35:11.600 回答