在mathworks上,我找到了一个代码,用于在绘图中绘制网格线:
g_x = -25:1.25:0;
g_y = -35:2.5:-5;
for i = 1:length(g_x)
plot([g_x(i) g_x(i)],[g_y(1) g_y(end)],'k:')% y grid lines
hold on
end
for i=1:length(g_y)
plot([g_x(1) g_x(end)],[g_y(i) g_y(i)],'k:') % x grid lines
hold on
end
我不明白情节命令:例如y网格线 - 其中一个输入是一个包含x轴所有间距点的向量,我想要一个网格。这些点以两列给出,并且它们被分配给第二个向量,该向量仅包含y轴上显示的第一个和最后一个点。据我了解这个命令,它将例如取第一个元素g_x(1)和g_y(1)并绘制a:,然后它将采用g_x(2)和g_y(1)并绘制:,依此类推。但它如何继续绘制:从g_y(1)连续到g-y(结束)?
答案 0 :(得分:1)
要直接回答您的问题,只需绘制每个网格线的两个端点,并且由于LineStyle
使用的默认plot
是实线,它们会自动生成连接。该代码正在做的是创建端点的所有排列并绘制这些排列以形成网格。
您可以简单地使用次要网格线并修改locations of the minor tick marks of the axes
,而不是创建自定义绘图对象(如果您使用R2015b或更高版本)。
g_x = -25:1.25:0;
g_y = -35:2.5:-5;
ax = axes('xlim', [-25 0], 'ylim', [-35 -5]);
% Turn on the minor grid lines
grid(ax, 'minor')
% Modify the location of the x and y minor tick marks
ax.XAxis.MinorTickValues = g_x;
ax.YAxis.MinorTickValues = g_y;
答案 1 :(得分:1)
基本上代码执行此操作:
g_x = -25:1.25:0;
生成一个值为-25.0000 -23.7500 -22.5000 -21.2500 ... 0
的数组
这些是绘制垂直线的位置
同样适用于g_y,但当然这决定了水平线的绘制位置。
选项'k'
确定它是虚线。
循环只是通过数组。 因此,在第一次迭代中,绘图函数从位置
绘制一条线[-25, -35]
到位置
[-25, -5]
因此,如果您想更改网格,只需更改g_x
g_x = -25:3.0:0;
例如,将绘制宽度为3.0
的垂直线
我希望这对你有意义。