MATLAB绘制 3D折线图

3D折线图专注于展示三维空间中曲线的分布情况,其核心函数为MATLAB中的plot3。与二维折线绘制中常用的plot函数相比,plot3函数的主要区别在于需要设定x、y、z三个方向上的坐标向量。在绘图属性方面,两者则保持高度一致。与3D折线图相似的,还有用于绘制3D散点图的scatter3函数以及3D杆状图的stem3函数等。

代码:

clc; clear; close all;

%----------------------

m = 15; % Series

N = 512; % Period

T0 = 4;

T = 2;

t1 = linspace(-T/2, T/2, N);

t2 = linspace(T/2, T0-T/2, N);

t = [(t1-T0)'; (t2-T0)'; t1'; t2'; (t1+T0)'];

%----------------------

% Construct periodic signals

%----------------------

% s = zeros(5*N,1);

% s(1:N)=1; s(2*N+1:3*N)=1; s(4*N+1:5*N)=1;

s = [ones(N,1);zeros(N,1);ones(N,1);zeros(N,1);ones(N,1)]';

y = zeros(m+1, length(s));

y(m+1,:) = s-0.5;

plot3(t-(t+2), t, y(m+1,:),'LineWidth',2); % Period square wave

hold on;

axis([-2,m+1,-T0-1,T0+1,-1,2])

set(gca,'XTick',-T0-1:2:m);

set(gca,'YTick',-T0-1:1:T0+1);

set(gca,'ZTick',-1:0.5:T0);

title('Fourier series expansion','FontSize',15);

grid on;

view(-49,23)

fsamp = 1028;

f = linspace(1, m+1, fsamp);

A = 0.5; % Coefficient

freq = 1:1:m;

plot3(f,T0+f-f+1,A*sinc(A*f)*5,'LineWidth',3)

mag = A*sinc(A*freq)*5;

h=stem3(freq,T0+freq-freq+1,mag,'filled','LineWidth',3);

set(h,'Marker','o',...   

'MarkerFaceColor','g')

x = A*ones(size(t));%  Harmonic signals

X = A*ones(size(t));% Synthesis signals

for k = 1:m

x = 2*A*sinc(A*k)*cos(2*pi*t*k/T0);

X = X+2*A*sinc(A*k)*cos(2*pi*t*k/T0);

y(k, :) = x;

plot3(k+t-t, t, y(k,:),'LineWidth',1.5); % Harmonic

end

plot3(k+1+t-t, t, X-0.5,'LineWidth',2);

grid on;

xlabel('Frequency view','Rotation', 15);

ylabel('Time duration','Rotation', -10);

zlabel('Amplitude/Magnitude');

set(gcf,'Color','White');  % Background is white

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值