You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB如何仅将2x2子图的共享坐标轴标题设置为粗体

实现方案

完全可以实现,推荐使用MATLAB R2021a原生支持的tiledlayout分块布局功能,无需手动计算文本位置,自适应效果更好,操作步骤如下:

核心实现逻辑

  • 先创建2×2分块布局,预留足够边距放置共享标题
  • 依次创建4个子图,单独设置每个子图的x、y轴标签(默认非粗体,无需额外配置)
  • 分别为对应行、列的子图块设置共享标题,单独指定FontWeight属性为bold即可实现仅共享标题加粗

完整可运行代码示例

% 1. 创建2行2列分块布局,调整间距适配共享标题
t = tiledlayout(2,2, 'TileSpacing','compact', 'Padding','loose');

% 2. 依次创建4个子图,设置各自独立的轴标签(默认常规非粗体)
% 子图(1,1)
nexttile
plot(rand(10,1))
xlabel('子图1 x轴标签')
ylabel('子图1 y轴标签')

% 子图(1,2)
nexttile
plot(rand(10,1))
xlabel('子图2 x轴标签')
ylabel('子图2 y轴标签')

% 子图(2,1)
nexttile
plot(rand(10,1))
xlabel('子图3 x轴标签')
ylabel('子图3 y轴标签')

% 子图(2,2)
nexttile
plot(rand(10,1))
xlabel('子图4 x轴标签')
ylabel('子图4 y轴标签')

% 3. 设置行方向共享标题(仅共享标题加粗)
% 第一行共享标题,覆盖子图(1,1)、(1,2)
title(t, '第一行共享标题', 'FontWeight','bold', 'TileIndex',[1,2]);
% 第二行共享标题,覆盖子图(2,1)、(2,2)
title(t, '第二行共享标题', 'FontWeight','bold', 'TileIndex',[3,4]);

% 4. 设置列方向共享标题(仅共享标题加粗)
% 第一列共享标题,覆盖子图(1,1)、(2,1)
ylabel(t, '第一列共享标题', 'FontWeight','bold', 'TileIndex',[1,3]);
% 第二列共享标题,覆盖子图(1,2)、(2,2)
ylabel(t, '第二列共享标题', 'FontWeight','bold', 'TileIndex',[2,4]);

替代方案(兼容subplot写法)

如果你已经用subplot完成了子图绘制,也可以通过annotation添加文本框实现共享标题,手动调整位置即可:

% 示例:添加第一行共享标题
annotation('textbox', [0.3, 0.92, 0.4, 0.05], ...
    'String','第一行共享标题', ...
    'FontWeight','bold', ...
    'EdgeColor','none', ...
    'HorizontalAlignment','center');

可根据实际画布尺寸调整annotation的位置参数,列共享标题添加'Rotation',90属性即可实现竖排显示。

内容的提问来源于stack exchange,提问作者user15791858

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:15:07