用脚本文件或者命令行修改,似乎只对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
运行结果参考

