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

如何修改Octave中bode图两个子图的坐标轴字体大小

问题成因

Octave Control 工具包的bode()函数执行后会自动生成两个垂直排列的坐标区对象:上方为幅频特性子图,下方为相频特性子图。
gca(获取当前坐标区)指令的返回值是最后被渲染激活的相频特性子图句柄,因此你编写的set(gca,'FontSize',20,'Fontname','arial')属性修改仅作用于第二个子图,上方幅频特性子图未被命中,就出现了仅第二个子图字号生效的异常。同时你编写的xlabel配置也仅会作用于第二个子图的x轴。

解决方案

批量获取当前图窗下所有坐标区对象,统一设置字体属性即可实现两个子图字号同步修改,修改后的完整脚本如下:

clear all;
close all;

pkg load control;

Ri1 = Ri2 = 10e6;
Cin = 2e-6;

R1 = 9e3;
R2 = 1e3;
Rl = 100;
C = 2e-6;

tau1 = ((Ri1*Ri2)/(Ri1 + Ri2)) * Cin;

H = tf([tau1 0],[tau1 1]);

Gain = R2/(R1+R2);

G = tf([C*Rl 0],[(C*R1 + C*(R1*R2)/(R1+R2)) 1]);

G = Gain * G;

bode(G*H);

% 核心修改:获取当前图窗下所有坐标区句柄,批量设置属性
all_axes = findobj(gcf, 'type', 'axes');
set(all_axes, 'FontSize', 20, 'Fontname', 'arial');

% 给最下方子图设置x轴标签(如果需要两个子图都显示x轴标签,可遍历all_axes逐个设置)
xlabel(all_axes(1), 'Frequency', 'FontSize', 20, 'FontWeight', 'bold');

如果你需要单独调整两个子图的样式,可以直接对all_axes数组索引来分别设置属性:all_axes(1)对应下方相频子图,all_axes(2)对应上方幅频子图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:39:05