MATLAB绘制局部放大图

今天,我将分享一段 MATLAB 代码,该代码生成了一个主副图结合的可视化展示,用于比较不同控制系统性能表现。

Matlab 复制代码
clc; clear; close all;

% 生成时间向量
t = 0:0.1:12;

% 生成模拟数据
zero_feedback = 0.5 * ones(size(t));                 % 恒定的0.5
adrc = 0.5 + 0.3*sin(t/1.2) - 0.2*exp(-t/3);        % 带振荡的曲线
third_curve = -1.5*(t/max(t)) + 0.1*randn(size(t));  % 线性下降带噪声

% 主图绘制
figure('Color','white')
main_ax = subplot(1,1,1);
hold on
plot(t, zero_feedback, '--', 'LineWidth', 1.5)
plot(t, adrc, 'LineWidth', 2)
plot(t, third_curve, 'LineWidth', 1.5)
xlabel('time [s]')
ylabel('Amplitude')
legend('Zero feedback controller', 'ADRC proposed controller', 'Third curve',...
       'Location','southwest')
grid on
xlim([0 12])

% 创建放大区域
zoom_ax = axes('Position',[0.6 0.6 0.25 0.25]); % 调整放大图位置
box on
hold on
idx = t >= 9.5 & t <= 11.5; % 截取放大时间段

% 绘制放大区域数据(保持相同的颜色和样式)
plot(t(idx), zero_feedback(idx), '--', 'LineWidth', 1)
plot(t(idx), adrc(idx), 'LineWidth', 1.2)
plot(t(idx), third_curve(idx), 'LineWidth', 1)
xlim([9.5 11.5])
ylim([-1.6 0.6])
set(zoom_ax, 'XTick', 9.5:0.5:11.5)
grid on

% 添加连接线
annotation('line',[0.4 0.6],[0.4 0.6],'LineStyle','--','Color',[0.5 0.5 0.5])
annotation('line',[0.4 0.6],[0.35 0.55],'LineStyle','--','Color',[0.5 0.5 0.5])

% 统一图形样式
set(findall(gcf,'Type','axes'), 'FontSize', 9)

看下效果

这段代码展示了如何将技术性能比较以直观且专业的方式呈现,对于控制系统研究或数据可视化爱好者而言,具有很好的参考价值,同时也为MATLAB图表定制提供了实用范例。

Over!

相关推荐
软件算法开发12 小时前
基于海象优化算法的LSTM网络模型(WOA-LSTM)的一维时间序列预测matlab仿真
算法·matlab·lstm·一维时间序列预测·woa-lstm·海象优化
机器学习之心17 小时前
LSBoost增强算法回归预测+SHAP可解释分析+新数据预测(多输入单输出)MATLAB代码
算法·matlab·回归·lsboost·shap可解释分析
有点傻的小可爱18 小时前
【MATLAB】新安装并口如何实现能通过PTB启用?
开发语言·windows·经验分享·matlab
mxwin20 小时前
Unity Shader 用 Ramp 贴图实现薄膜干涉效果
unity·游戏引擎·贴图·shader·uv
lilili也20 小时前
一些函数的记录
matlab
魔士于安21 小时前
Unity星球资源,八大星球,带fps显示
游戏·unity·游戏引擎·贴图·模型
机器学习之心1 天前
随机森林回归预测+SHAP可解释分析+新数据预测(多输入单输出)MATLAB代码
随机森林·matlab·回归·shap可解释分析
IT猿手1 天前
MATLAB模拟四旋翼无人机飞行,机翼可独立旋转
开发语言·matlab·无人机
我爱C编程1 天前
基于OMP正交匹配追踪和稀疏字典构造的杂波谱恢复算法matlab仿真
算法·matlab·omp·正交匹配追踪·稀疏字典构造·杂波谱恢复
英英_1 天前
优化 MATLAB MapReduce 程序性能:从基础调优到进阶提速
开发语言·matlab·mapreduce