Matlab:绘制平行于y轴的线

Matlab:绘制平行于y轴的线,matlab,plot,yaxis,Matlab,Plot,Yaxis,我想用x=10,20,30,…,100绘制所有平行于y轴的线 我把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来绘制这样的线呢?你的想法是正确的,但是线端的x坐标和y坐标都是错误的。对于x,您应该使用: x = 10:10:100; 这将生成[10,20

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

我把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来绘制这样的线呢?

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

x = 10:10:100;
这将生成
[10,20,…,100]
<另一方面,code>linspace(1100,10)生成10个介于1和100之间的等距值,这有些不同。要使用
linspace
获得相同的值,可以执行
linspace(10100,10)

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

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

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

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

x = 10:10:100;
这将生成
[10,20,…,100]
<另一方面,code>linspace(1100,10)生成10个介于1和100之间的等距值,这有些不同。要使用
linspace
获得相同的值,可以执行
linspace(10100,10)

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

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

这会重复每条线的y轴限制,因此第条线是从
(x(i),ylim(1))
(x(i),ylim(2))

这并不能完全回答您的问题,但可能正是您想要的

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

ax = axes;
ax.XGrid = 'on';
或者对于旧的Matlab版本

set(ax, 'XGrid', 'on')
(如果没有轴手柄
ax
,可以使用)

这将在绘图的当前位置创建线。如果要将网格线设置为特定范围,则必须更改X点

ax.XTick = 0:10:100;
如果您认为线太弱(难以看到),可以调高栅格alha值(默认值为0.5)

或者给它上色

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

这并不能完全回答你的问题,但可能正是你想要的

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

ax = axes;
ax.XGrid = 'on';
或者对于旧的Matlab版本

set(ax, 'XGrid', 'on')
(如果没有轴手柄
ax
,可以使用)

这将在绘图的当前位置创建线。如果要将网格线设置为特定范围,则必须更改X点

ax.XTick = 0:10:100;
如果您认为线太弱(难以看到),可以调高栅格alha值(默认值为0.5)

或者给它上色

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

这样,平行于y轴的直线,x=10,20,30。。。100,但x=11,25时,x稍微大一点……这是因为您如何使用
linspace
。这里也有一个错误,我将编辑答案。这样,平行于y轴的线,没有x=10,20,30。。。100,但x=11,25时,x稍微大一点……这是因为您如何使用
linspace
。这里也有一个错误,我会编辑答案。你说x=10,20,,…,100,但是
linspace(1100,10)创建一个起始值为1的向量。您应该使用
linspace(10100,10)
或者更简单的
10:10:100
你说x=10,20,,…,100,但是
linspace(1100,10)创建一个起始值为1的向量。您应该使用
linspace(10100,10)
或者更简单的
10:10:100
我想也使用这个:)但是在我看来它没有那么灵活。我想也使用这个:)但是在我看来它没有那么灵活。