在matlab中将刻度线放置在每个网格的中间
Placing ticks in the middle of each grid in matlab
我想在 matlab 上创建一个带轴的图形。但我希望 y 轴上的刻度位于每个网格的中间。我怎么做?
一个例子是这样的:
我不知道有特定的 matlab 函数可以完成此操作。
作为解决方案,您可以自己在 0.5、1.5、2.5、... 处用垂直线和水平线绘制网格
作为解决方法,您可以同时打开主要和次要网格线,但将主要网格线设置为背景颜色,如下所示:
ax = axes;
grid(ax,'on');
grid(ax,'Minor');
set(ax,'GridColor',get(ax,'Color'))
set(ax,'MinorGridLineStyle','-')
set(ax,'TickLength',[0;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
输出:
我想在 matlab 上创建一个带轴的图形。但我希望 y 轴上的刻度位于每个网格的中间。我怎么做?
一个例子是这样的:
我不知道有特定的 matlab 函数可以完成此操作。
作为解决方案,您可以自己在 0.5、1.5、2.5、... 处用垂直线和水平线绘制网格
作为解决方法,您可以同时打开主要和次要网格线,但将主要网格线设置为背景颜色,如下所示:
ax = axes;
grid(ax,'on');
grid(ax,'Minor');
set(ax,'GridColor',get(ax,'Color'))
set(ax,'MinorGridLineStyle','-')
set(ax,'TickLength',[0;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
输出: