matlab绘图

散点图学习

 

目录

基于scatter函数的二维散点图

基于scatter3函数的三维散点图 

基于gplotmatrix和gscatter函数的散点图的绘制 

绘制单位圆 

单位圆的内接正八边形和内接正方形

三维绘图命令

画出三维螺旋线x = tcos(t),y = tsin(t),z = t的图形 

绘制椭圆锥面x^2/4+y^2/2=z^2

 莫尔乌斯

 画等高线


基于scatter函数的二维散点图

 %基于scatter函数的二维散点图
% %格式如下:scatter(x,y) scatter(x,y,sz) scatter(x,y,sz,c)每个离散点默认用小圆圈表示,在第二格式中sz表示小圆圈的大小,若为标量,则所有圆圈大小相等,
% %semount.mat是matlab 自带的某海山数据,其中向量x表示294个点的维度,y向量表示精度,z表示深度向量,绘出平面散点图 

clc,clear
load seamount %加载matlab内置文件seamount
subplot(121),scatter(x,y,20,z)  %圆圈大小为20
title('(A)s = 20'),xlabel('$x$','Interpreter','Latex')
%关于LaTeX字体
% xlabel('$X$','interpreter','latex','FontSize',17)
% ylabel('$Y$','interpreter','latex','FontSize',17)
% zlabel('$Z$','interpreter','latex','FontSize',17)   %LaTeX字体给坐标轴上标签

ylabel('$y$','Interpreter','Latex','Rotation',0)  %Rotation,0 将y方正旋转
subplot(122),scatter(x,y,30,'filled')%圆圈大小为50且为实心
title('(A)s = 30'),xlabel('$x$','Interpreter','Latex')
ylabel('$y$','Interpreter','Latex','Rotation',0)

基于scatter3函数的三维散点图 

%基于scatter3函数的三维散点图
%三维空间内,x,y,z,用scatter3
%格式如下:
%scatter3(x,y,z)scatter(x,y,z,sz),scatter(x,y,z,sz,c)
%绘制seamount.mat的三维空间散点图 

clc,clear
load seamount  %加载文件
scatter3(x,y,z,30,z,'fill')
xlabel('$X$','Interpreter','Latex'),ylabel('$y$','Interpreter','Latex')
zlabel('$z$','Interpreter','Latex','Rotation',0)

基于gplotmatrix和gscatter函数的散点图的绘制 

%基于gplotmatrix和gscatter函数的散点图的绘制
%gplotmatrix可以绘制分组数据变量之间的散点图,gscatter绘制分组数据的散点图
%例3.4
%fisheriris数据集由fisher于1936年收集整理,数据集包含150条数据,分为3类,每类数据包含4个属性和一个类别标签值 

clc,clear,close all
load fisheriris
tabulate(species)  %频数表
gplotmatrix(meas,meas,species,'rgb','sdo')
figure,gscatter(meas(:,3),meas(:,4),species,'rgb','sdo')
xlabel('Petallength'),ylabel('PetaWidth')

绘制单位圆 

clc,clear,close all
t = 0:0.01:2*pi;
x = cos(t);y = sin(t);
plot(x,y),axis square%方的
figure
x = @(t)cos(t);y = @(t)sin(t);
fplot(x,y,[0,2*pi]),axis equal

单位圆的内接正八边形和内接正方形

clc,clear,close all
x = @(t)cos(t);y = @(t)sin(t);
fplot(x,y,[0,2*pi])
t = linspace(0,2*pi,9);%保证0和2pi是同一个点,所以是9个点
x2 = cos(t);y2 = sin(t);hold on
plot(x2,y2)
m = linspace(pi/4,9/4*pi,5)
x3 = cos(m),y3 = sin(m);hold on
plot(x3,y3)
axis equal

三维绘图命令

%三维绘图命令
%plot3(x,y,z)通过描点连线画出曲线
%mesh(x,y,z)画出网格曲面
%surf(x,y,z)画三维 表面图
%如果已知曲线或曲面的函数关系,提倡使用fplot3和fzmesh,fsurf
%三维空间隐函数绘图命令为fimplicit3 

画出三维螺旋线x = tcos(t),y = tsin(t),z = t的图形 

clc,clear,close all
t = 0:0.01:100;x = t.*cos(t);y = t.*sin(t)
subplot(121),plot3(x,y,t)
x  = @(t)t.*cos(t);y = @(t)t.*sin(t);
z = @(t)t;subplot(122),fplot3(x,y,z,[0,100])

绘制椭圆锥面x^2/4+y^2/2=z^2

clc,clear,close all
subplot(121),x = @(t,z)2*z*cos(t);y = @(t,z)sqrt(2)*z*sin(t);
z = @(t,z)z;fsurf(x,y,z,[0,2*pi,-5,5]),title('')
subplot(122),fimplicit3(@(x,y,z)x.^2/4++y^2/2-z^2,[-10,10,-10,10,-5,5])

 莫尔乌斯

matlab绘图_第1张图片

x = @(s,t)(2+s/2.*cos(t/2)).*cos(t);
y = @(s,t)(2+s/2.*cos(t/2)).*sin(t);
z = @(s,t)s/2.*sin(t/2);
fmesh(x,y,z,[-1,1,0,2*pi])

 画等高线

已知平面区域0<=x<=1400,0<=y<=1200步长间隔为100的网格节点高程数据,画出等高线和三位表面图matlab绘图_第2张图片 

clc,clear
z = load('data1.txt');
x = 0:100:1400;y = 1200:-100:0
%不知道高度时
a = contour(x,y,z) ;clabel(a)           %画等高线,画错转置一下,clable画出高度,contour画出等高线
figure   %新开辟一个画图界面
subplot(121),mesh(x,y,z)%网格图
subplot(122),surf(x,y,z)  %表面图



你可能感兴趣的:(matlab,matlab,开发语言)