1. 問題描述
這是一個(gè)沒有難度,但經(jīng)常出現(xiàn)的問題。
在MATLAB繪圖中,除了基本的數(shù)據(jù)繪圖,我們往往需要繪制輔助性直線,例如:
mark
2. 技術(shù)背景
MATLAB中繪制這樣的直線很簡單,只需確定兩個(gè)點(diǎn)即可。但是要確定貫通方向的坐標(biāo)范圍,較為繁瑣,還需要根據(jù)主體數(shù)據(jù)進(jìn)行調(diào)整。
3. 解決方案
繪制完主體圖像后,直接從axes對(duì)象中提取坐標(biāo)范圍,用于確定繪制直線的數(shù)據(jù)。
4. 實(shí)施示例
繪圖程序代碼如下,可以在任意圖像之后直接運(yùn)行,繪制輔助直線。
function xline(position,lineSpec)
% 題目:輸入MATLAB默認(rèn)顏色向量
% 輸入:
% position -- [x y],[1 0]在x=1處繪制豎線,[0 1]在y=1處繪制橫線
% lineColor -- 'r'
% 輸出:顏色向量
% 示例:
% xline([0 6],'r-')
if nargin < 2 % 自動(dòng)補(bǔ)充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
以一個(gè)正弦圖像為例,繪制要在 x = pi/2,y = sin(pi/4)的位置繪制直線,只需要:
clc,clear,close all
t = 0:pi/40:2*pi; % 基本數(shù)據(jù)
y = sin(t);
figure
plot(t,y) % 正弦曲線
xline([pi/2,0]) % 豎向直線
xline([0,sin(pi/4)]) % 橫向直線
mark
5. 常見問題
無
本文用時(shí) 10 m