如何在Matlab中绘制如图所示的笛卡尔平面?plot命令无对应设置
实现笛卡尔平面绘图的方法
嘿,我懂你要的那种坐标轴居中的笛卡尔平面——就是和默认plot输出的左下角坐标轴完全不同的样式对吧?其实不用找什么特殊命令,调整现有坐标轴的属性就能搞定,甚至还能自定义得更贴合你的需求,我给你两种实用的方法:
方法一:手动调整坐标轴属性(最推荐,可控性强)
这是最直接的方式,不需要额外工具,通过修改当前轴对象的属性就能实现:
- 先创建一个图窗(或者先绘制你的数据),比如先占位画个空点:
figure; plot(0,0); % 占位用,后续可以替换成你的数据 - 获取当前坐标轴对象:
ax = gca; - 核心设置:把坐标轴移到原点位置
ax.XAxisLocation = 'origin'; % 将X轴放在Y=0的位置 ax.YAxisLocation = 'origin'; % 将Y轴放在X=0的位置 - 去掉默认的边框(只保留交叉的坐标轴):
ax.Box = 'off'; - 添加网格并调整显示范围:
grid on; grid minor; % 可选:显示细网格 xlim([-5 5]); % 设置X轴范围,按需调整 ylim([-5 5]); % 设置Y轴范围,按需调整
完整示例代码
% 创建笛卡尔平面 figure; ax = gca; % 核心:坐标轴居中 ax.XAxisLocation = 'origin'; ax.YAxisLocation = 'origin'; % 优化显示:去掉边框,添加网格 ax.Box = 'off'; grid on; grid minor; % 设置坐标轴范围 xlim([-6 6]); ylim([-6 6]); % 可选:添加坐标轴标签和标题 xlabel('X'); ylabel('Y'); title('笛卡尔坐标平面');
方法二:自定义带箭头的坐标轴(进阶需求)
如果你需要带箭头的坐标轴(更贴近数学里的笛卡尔平面样式),可以结合annotation函数绘制箭头:
figure; ax = gca; % 隐藏默认坐标轴的线条(只保留刻度) ax.XAxis.Visible = 'off'; ax.YAxis.Visible = 'off'; ax.Box = 'off'; % 设置范围和网格 xlim([-5 5]); ylim([-5 5]); grid on; % 绘制X轴箭头(从左到右) annotation('arrow', [0.1 0.9], [0.5 0.5], 'Color', 'k', 'LineWidth', 1.5); % 绘制Y轴箭头(从下到上) annotation('arrow', [0.5 0.5], [0.1 0.9], 'Color', 'k', 'LineWidth', 1.5); % 添加刻度标签(手动对应位置) xticks(-5:1:5); yticks(-5:1:5); xlabel('X', 'Position', [0.9 0.48]); ylabel('Y', 'Position', [0.48 0.9]);
这种方法自由度更高,能完全复刻数学课本里的笛卡尔平面样式。
内容的提问来源于stack exchange,提问作者Bootuz




