Matlab标准绘图第一篇

简单地记录了一下Matlab标准绘图,作为学习复习的总结。

Posted by LJJ on April 9, 2019

Matlab标准绘图

前言:本文所有内容基于MathWorks,见于 https://ww2.mathworks.cn/products/matlab/plot-gallery.html ,本文仅作为个人学习记录使用。

  • 2D线图

    函数用法:plot(X,Y,LineSpec) ,二维线图

example1:

clear,clf,clc
x  = 0: .1 : 2*pi;
y1 = cos(x);
y2 = sin(x);
% 绘制y1对x(蓝色,实心)和y2对x(红色,虚线)
figure
% LineWidth为行宽大小,在plot函数里的LineSpec属性
plot(x, y1, 'b', x, y2, 'r-.', 'LineWidth', 2)
% 打开网格
grid on
% 设置轴限制(x1,x2,y1,y2)
axis([0 2*pi -1.5 1.5])
% 添加标题和轴名称
title('Trigonometric Functions')
xlabel('angle')
ylabel('sin(x) and cos(x)')    

画出效果图如示:
.

example2:

% 加载股票指数的数据
load d_02_IndexData dates values series
% 绘制股票指数值与时间的关系
figure
plot(dates, values)
% 使用dateticks作为x轴
datetick('x')
% 添加标题和轴标签
xlabel('Date')
ylabel('Index Value')
title('Relative Daily Index Closings')
% 在左上角添加图例
% 默认为右上角
legend(series, 'Location', 'NorthWest')

画出效果图如示:
.
数据集:d_02_IndexData.mat example3:

% 加载莫尔斯数据
load d_03_MDdata dissimilarities dist1 dist2 dist3
% 以蓝色绘制第三组数据
figure
plot(dissimilarities, dist1, 'bo')
hold on

% 以红色绘制第三组数据
plot(dissimilarities, dist2, 'r+')

% 以绿色绘制第三组数据
plot(dissimilarities, dist3, 'g^')

% 添加标题和轴标签
title('Morse Signal Analysis')
xlabel('Dissimilarities')
ylabel('Distances')

% 添加图例
legend({'Stress', 'Sammon Mapping', 'Squared Stress'}, ...
    'Location', 'NorthWest')

画出效果图如示:
.
数据集:d_03_IndexData.mat

  • 时间图

这里注意一下datetime类型的用法。

example1:

% 加载自行车骑行摘要数据
load dt_01_RideSummary byDate
% 绘制平均自行车骑行持续时间与日期的关系
plot(byDate.Date, byDate.MeanDuration)
% 更改限制和日期格式
%datetime为时间数组
limits = [datetime(2012,7,1) datetime(2012,8,31)];
%设置当前坐标区或图的 x 坐标轴范围
xlim(limits)
%返回当前图窗的当前坐标区或图
ax = gca;
%刻度标签格式(月份,天数)
ax.XAxis.TickLabelFormat = 'MMMM dd';
%刻度标签旋转45°
ax.XAxis.TickLabelRotation = 40;
% 添加标签和标题
xlabel('Date')
ylabel('Mean Ride Duration')
title('Mean Ride Duration between July and August 2012')


画出效果图如示: . 数据集dt_01_RideSummary.mat

  • 函数图

    函数用法:fimplicit(f) ,画隐函数图

example1:

% 使用双纽线函数创建绘图 f(x,y) = (x^2 + y^2)^2 - x^2 + y^2
figure
%给隐函数绘图并设置坐标区间
fimplicit(@(x,y) (x.^2 + y.^2).^2 - x.^2 + y.^2, [-1.1 1.1 -1.1 1.1])
% 调整色彩映射以将功能绘制为蓝色
colormap([0 0 1])
% 添加多行标题
title({'Lemniscate Function', '(x^2 + y^2)^2 - x^2 + y^2'})

画出效果图如示: .

example2:

% 构造一系列线函数 f(x,y) = y^2 - x^2 + c
figure
fimplicit(@(x,y) y.^2 - x.^2 + 4, [-3 3 -3 3])
%保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图
hold on
fimplicit(@(x,y) y.^2 - x.^2 + 2, [-3 3 -3 3])
fimplicit(@(x,y) y.^2 - x.^2, [-3 3 -3 3])
fimplicit(@(x,y) y.^2 - x.^2 - 2, [-3 3 -3 3])
fimplicit(@(x,y) y.^2 - x.^2 - 4, [-3 3 -3 3])
%将保留状态关闭
hold off
grid on
% 图例
legend('c = -4','c = -2','c = 0','c = 2','c = 4')
% 标题
title('y^2 - x^2 - c = 0 for c = [-4 -2 0 2 4]')

画出效果图如示: .

函数使用:fplot(f,xinterval) 将在指定区间绘图,将区间指定为 [xmin xmax] 形式。

example1:

% 画出函数 y = x^3 在范围为 [-2 2] 的图像
% 用线宽为2的红线画
fplot(@(x) x.^3, [-2 2], 'r', 'LineWidth',2) 
% 轴与标题
xlabel('x')
ylabel('y')
title('y = x^3') 画出效果图如示:  ![.](/img/LJJ-m-07.PNG)

example2:

x = @(t) sin(2*t);
y = @(t) sin(3*t);
fplot(x,y)
% Add labels and title
xlabel('x')
ylabel('y')
title('x(t) = sin(2*t), y(t) = sin(3*t)')
  • 3D线图

    函数用法:plot3(X1,Y1,Z1,LineSpec,…),绘制3D线图;view(az,el),观察者的位置(视点)确定坐标区的方向。

说明:方位角是 x-y 平面中的极坐标角,正值表示按逆时针方向旋转视点。仰角是位于 x-y 平面上方的角度(正角度)或下方的角度(负角度)。

下图展示了坐标系,箭头指示正方向。 . example:

% 加载数据
load spectraData masscharge time spectra

% 创建3D图
figure
plot3(masscharge, time, spectra)
%显示围绕当前坐标区的框轮廓
box on

% 设置视角和轴限制
view(26, 42)
%[x,y,z]坐标区间,4e8表示4*10^8
axis([500 900 0 22 0 4e8])

% 轴称和标题
xlabel('Mass/Charge (M/Z)')
ylabel('Time')
zlabel('Ion Spectra')
title('Extracted Spectra Subset')

画出效果图如示: .