散点图学习
目录
基于scatter函数的二维散点图
基于scatter3函数的三维散点图
基于gplotmatrix和gscatter函数的散点图的绘制
绘制单位圆
单位圆的内接正八边形和内接正方形
三维绘图命令
画出三维螺旋线x = tcos(t),y = tsin(t),z = t的图形
绘制椭圆锥面x^2/4+y^2/2=z^2
莫尔乌斯
画等高线
%基于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函数的三维散点图
%三维空间内,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绘制分组数据的散点图
%例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
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])
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])
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])
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) %表面图