MATLAB|辅助直线绘制程序

1. 问题描述

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

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)])                                                            % 横向直线
mark

5. 常见问题

本文用时 10 m

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 引言 针对特定的研究目标相应的MATLAB程序中存在大量的重复模块,为了提高工作效率和程序的复用性,将本人经...
    马骋阅读 11,487评论 2 10
  • 显示中文帮助的方法 预设→常规→帮助→在mathworks.com网站上(需要Internet连接)→语言(简体中...
    VeyronC阅读 2,523评论 0 34
  • //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃呓语阅读 51,367评论 10 200
  • 寒风凛冽,万物萧条,走进花卉市场,顿觉春意盎然。 尤其喜欢这样貌不惊人、不妖艳、羞答答在角落里绽放的各色花瓣的小花儿。
    槑头槑脑儿阅读 265评论 0 2
  • 清晨,空气中夹杂了凉意。慵懒的人还倒在床上。 用自己喜欢的方式过一生。 我相信没有人过着贫苦的生活。 没有人会说...
    麦绿阅读 169评论 0 0