如何在wxmaxima GUI内绘制bode_gain图像且不弹出独立窗口?
wxMaxima内嵌显示bode_gain绘图结果的解决方案
bode_gain是control扩展包提供的封装函数,不属于wxMaxima原生plot2d系列基础绘图函数,因此直接加wx前缀的适配规则不生效,需要显式指定它调用的底层绘图接口为GUI适配的wxplot2d。
方法1:单次调用指定绘图函数
适合仅部分bode_gain调用需要内嵌显示的场景,调用时额外传入plotfn=wxplot2d参数即可:
/* 先加载control包 */ load("control")$ /* 定义示例传递函数 */ G: tf([1], [1, 2, 1])$ /* 调用时指定plotfn参数,绘图直接内嵌GUI */ bode_gain(G, [frequency_range = [1e-2, 1e2]], plotfn=wxplot2d)$
方法2:全局设置control包默认绘图函数
适合需要所有control包相关绘图(包括bode_gain、bode_phase、nyquist等)都默认内嵌显示的场景,加载control包后先修改全局默认配置即可:
load("control")$ /* 全局修改control包的默认绘图函数,后续所有调用无需再加plotfn参数 */ control::*default_plot_function*: wxplot2d$ /* 示例调用 */ G: tf([1], [1, 2, 1])$ bode_gain(G, [frequency_range = [1e-2, 1e2]])$
异常排查
如果配置后依然弹出独立窗口,可执行以下命令重置绘图格式配置:set_plot_option([plot_format, xmaxima])$
内容的提问来源于stack exchange,提问作者vram
相关产品推荐
相关产品推荐

