怎么单独修改x轴刻度的字号大小呀

标签: 绘图

megxl 2026-10-16 09:19:36

用脚本文件或者命令行修改,似乎只对y轴刻度有效,ai搜索了下,输入下面的语句ax=gca,set(ax.XAxis,'FontSize',20),提示XAxis为无效结构体名,问下怎么能单独修改x轴刻度字号

回复

我们确实暂时不支持单独修改x轴刻度,但是我写了方法帮您完成类似工作,您可以参考下

主程序:

x = 0:0.1:2*pi;

plot(x, sin(x)); grid on

ax = gca;

xtickfont(20);


x轴修改函数:

function axf = xtickfont(sz, ax)

% XTICKFONT 单独设置 x 轴刻度标签字号(北太天元版)

% 用法:xtickfont(20)      当前坐标区 x 刻度字号设为 20

%       xtickfont(20, ax)  指定坐标区


if nargin < 1 || isempty(sz), sz = 20; end

if nargin < 2 || isempty(ax), ax = gca; end


fig = get(ax, 'Parent');            % 父对象(图窗)

pos = get(ax, 'Position');

xl  = get(ax, 'XLim');

yl  = get(ax, 'YLim');

xtk = get(ax, 'XTick');

xtkMode = get(ax, 'XTickMode');


% 1) 原坐标区:保留刻度线与底边,仅清掉 x 刻度文字

%    空元胞数组 {} 表示"不显示刻度标签"

set(ax, 'XTickLabel', {});


% 2) 叠加坐标区:先创建,再逐项 set(避开不支持的 'Parent' 名称-值对)

axf = axes('Position', pos);

set(axf, 'Color',    'none', ...   % 透明,不遮住曲线

'Box',      'off',  ...

'YColor',   'none', ...   % 只保留 x 轴

'YTick',    [],    ...

'FontSize', sz,    ...    % 关键:只有这一层字大

'XLim',     xl,    ...

'YLim',     yl,    ...

'TickLength', [0 0]);     % 不重复画刻度线,避免和原图重叠加粗

try

set(axf, 'Parent', fig);       % 保险:显式归到同一个图窗

catch

% 若环境不允许重设父对象,当前图窗即父图窗时可忽略

end


% 3) 原图 x 刻度是手动指定时,叠加层跟随,保证标签与刻度线对齐

if strcmp(xtkMode, 'manual')

set(axf, 'XTick', xtk, 'XTickMode', 'manual');

end

set(axf, 'XTickLabelMode', 'auto');   % 但标签仍由叠加层按新字号自动生成


% 4) 恢复原坐标区为"当前坐标区",否则之后的 plot 会画到叠加层上

try

axes(ax);

catch

set(fig, 'CurrentAxes', ax);

end

end


运行结果参考

ScreenShot_2026-10-19_134139_639.png


回复

重置 提交