在matlab中将每个网格中间的刻度线放置

时间:2017-03-07 07:31:55

标签: matlab axes

我正在尝试在matlab上创建一个带轴的图形。但我希望y轴上的刻度位于每个网格的中间。我怎么做? 一个例子是这样的: Errors displayed when running the theme

3 个答案:

答案 0 :(得分:2)

作为一种解决方法,您可以打开主要和次要网格线,但将主要网格线设置为背面颜色,如下所示:

ax = axes;
grid(ax,'on');
grid(ax,'Minor');
set(ax,'GridColor',get(ax,'Color'))
set(ax,'MinorGridLineStyle','-')
set(ax,'TickLength',[0;0]);

给出了: enter image description here

答案 1 :(得分:0)

我不知道具体的matlab功能来实现这一目标。

作为解决方案,您可以使用0.5,1.5,2.5,......的垂直和水平线自行绘制网格。

答案 2 :(得分:0)

我还通过绘制自己的小网格线而不显示主要网格线找到了另一种方法。

figure1 = figure;
axes1 = axes('Parent',figure1,'ZGrid','on','XGrid','on',...
    'YTickLabel',{'','1','2','3', ''},...
    'YTick',[0 1 2 3 4 ],...
    'YGrid', 'off')

ylim([0.5 3.5]);
xlim([0 20]);
% gridlines ---------------------------
hold on
g_y=[0.5:1:4]; % user defined grid Y [start:spaces:end]
g_x=[0:2:20]; % user defined grid X [start:spaces:end]

for i=1:length(g_y)
   plot([g_x(1) g_x(end)],[g_y(i) g_y(i)],'k-') %x grid lines   
end

输出:

enter image description here

信用转到https://au.mathworks.com/matlabcentral/answers/95511-in-matlab-is-there-a-way-to-set-the-grid-at-a-spacing-different-from-the-ticks-on-the-axes