MATLAB|辅助直线绘制程序

1. 问题描述

这是一个没有难度,但经常出现的问题。
在MATLAB绘图中,除了基本的数据绘图,我们往往需要绘制辅助性直线,例如:

MATLAB|辅助直线绘制程序_第1张图片
mark

2. 技术背景

MATLAB中绘制这样的直线很简单,只需确定两个点即可。但是要确定贯通方向的坐标范围,较为繁琐,还需要根据主体数据进行调整。

3. 解决方案

绘制完主体图像后,直接从axes对象中提取坐标范围,用于确定绘制直线的数据。

4. 实施示例

绘图程序代码如下,可以在任意图像之后直接运行,绘制辅助直线。

function xline(position,lineSpec)
% 题目:输入MATLAB默认颜色向量
% 输入:
%       position    -- [x y],[1 0]在x=1处绘制竖线,[0 1]在y=1处绘制横线
%       lineColor   -- 'r'
% 输出:颜色向量
% 示例:
%       xline([0 6],'r-')

if nargin < 2                                                                   % 自动补充lineSpec
    lineSpec = 'k-.';
end

if position(1) == 0                                                             % 横线
    y0 = position(2)*[1 1]';
    x0 = get(gca,'Xlim')';
else                                                                            % 竖线
    x0 = position(1)*[1 1]';
    y0 = get(gca,'Ylim')';
end
hold on
plot(x0,y0,lineSpec);                                                   % 绘制
end % end of line

以一个正弦图像为例,绘制要在 x = pi/2,y = sin(pi/4)的位置绘制直线,只需要:

clc,clear,close all
t = 0:pi/40:2*pi;                                                               % 基本数据
y = sin(t);

figure
plot(t,y)                                                                       % 正弦曲线

xline([pi/2,0])                                                                 % 竖向直线
xline([0,sin(pi/4)])                                                            % 横向直线
MATLAB|辅助直线绘制程序_第2张图片
mark

5. 常见问题

本文用时 10 m

你可能感兴趣的