在Matlab图中手动绘制小刻度线-长度问题

问题描述 投票:0回答:2

我正在使用以下方法手动为绘图的轴绘制小刻度线:

xg = [xlim(1):XMinorTickDistance:xlim(2)];
xg = repmat(xg,2,1);
yg = [ylim(1) ylim(1)+XMinorTickLength];
yg = repmat(yg',1,size(xg,2));
XMinorTick = plot(xg,yg,'Color',TickColor,'LineWidth',TickLineWidth,'LineStyle','-','Marker','none');

当我手动选择带有数字的 XMinorTickLength 时它会起作用。但是,我想通过这样做使其成为刻度长度的一半:

a=get(gca,'TickLength')
XMinorTickLength=a(1)/2;

这不会使次要刻度的大小成为主要刻度的一半。请问我做错了什么?

matlab plot
2个回答
0
投票

嗯,

a=get(gca,'TickLength')
XMinorTickLength=a(1)/2;

将属性

TickLength
读入变量
a
,然后创建一个包含 a/2 的新变量
XMinorTickLength
。仅命名变量
XMinorTickLength
并不告诉 matlab 将其解释为刻度长度,它只是工作区中的某个值。你需要

a=get(gca,'TickLength');
a(1) = a(1)/2;
set(gca,'TickLength',a); 

最后一行将修改后的

a
写回到属性
TickLength


0
投票

这是很多年后的事了,但它可能会对某人有所帮助。我发现自己遇到了这个问题,解决它的方法是找到

XAxis
属性
MinorTickValues

ax = gca;
xminorTicks= ax.XAxis.MinorTickValues;
xMinorTickLength = xMinorTicks(2)-xMinorTicks(1);
© www.soinside.com 2019 - 2024. All rights reserved.