Matlab:绘制与y轴平行的线条

时间:2017-01-25 09:08:47

标签: matlab plot yaxis

我想绘制所有平行于y轴的线,x = 10,20,30,...,100

我写了x:

x=linspace(1,100,10);

我尝试用这种方式绘图:

figure(1)
plot([x; x], [zeros(1, length(x))*min(ylim); ones(1, length(x))*max(ylim)],'r')

但是效果不好。如何编写y来绘制这些线?

2 个答案:

答案 0 :(得分:1)

你有正确的想法,但你的x坐标和你的y坐标都是错误的。对于x,您应该使用:

x = 10:10:100;

这会生成[10, 20, ..., 100]。另一方面,linspace(1, 100, 10)生成10个等间距值,介于1和100之间 - 这有点不同。要使用linspace获取相同的值,您需要执行linspace(10, 100, 10)

对于y,因为您使用zeros,所以该行仅从零延伸到y上限,而不是从下限到上限。您的电话应该是:

plot([x; x], repmat(ylim', 1, numel(x)), 'r')

这会重复每行的y轴限制,因此i - 行从(x(i), ylim(1))(x(i), ylim(2))

答案 1 :(得分:1)

这并不能完全回答你的问题,但可能正是你所寻找的。

使用XGrid属性创建(支持)与Y轴平行的线。

ax = axes;
ax.XGrid = 'on';

或旧的Matlab版本

set(ax, 'XGrid', 'on')

(如果你没有轴柄ax,你可以使用gca

这会在情节的当前XTick处创建线条。如果要使网格线具有特定范围,则必须更改XTick

ax.XTick = 0:10:100;

如果您认为线条很弱(很难看到),您可以调高网格alha值(默认值为0.5)。

ax.GridAlpha = 1; %

或为其着色

ax.GridColor  = 'r'; % Set grid color to red