如何控制Y轴刻度之间的默认距离?

时间:2018-12-28 01:57:58

标签: matlab matplotlib matlab-figure

这是一个简单的MATLAB代码。如何控制Y轴刻度之间的默认距离?我想缩小它以适合我的论文。提示:我用2张图片更新了帖子,以显示我的意思(它们是相同的,但是在一张图片中y轴刻度线之间的距离要比另一张图片小。

enter image description here

x = linspace(-10,10,200); 
y = sin(4*x)./exp(x); 
plot(x,y)
xlim([0 10])
ylim([-0.4 0.8])

enter image description here

4 个答案:

答案 0 :(得分:1)

您可以通过使用绘图的gca对象来控制刻度线。这是xtick的示例。将devDependencies更改为package.json

'xtick'

答案 1 :(得分:0)

如果要使用新标签更改x轴刻度标签,则可以按以下方式更改标签的值:

% specify the ticks first where you want to change
xticks([0 2 4 6 8])
% change the corresponding labels to the required ones
xticklabels({'-1', '-2', '-3', '-4', '-5'})

答案 2 :(得分:0)

您可以修改图形的高度,同时保持刻度线的数量和值,从而使刻度线之间的距离更短。

为此,请设置图形窗口的'Position'属性(这等效于拖动窗口的边缘以使图形变小),并手动设置刻度线的位置以防止MATLAB减小其刻度数。例如:

h = gcf; % figure handle
a = gca; % axes handle
ticks = get(a,'YTick');
pos = get(h,'Position');
pos(4) = pos(4) * 0.75; # reduce the size
set(h,'Position',pos);
set(a,'YTick',ticks)

您还应该注意图形的PaperPosition,PaperSize和其他Paper ...属性,因为它们在打印(也用于归档)时使用。您可能想要在通过图形创建PDF或EPS之前手动设置这些属性。

答案 3 :(得分:0)

这比@Cris suggested的方法更简单:

ax = axes;
ax.YTickMode = 'manual';
ax.Position(4) = ax.Position(4)*0.75;

通过将YTickMode设置为手动,可以防止Matlab在调整轴大小时更新刻度线。然后,通过直接设置position属性来更改轴的高度。