title([str1,neline,str2])
title({str1;str2})
plot(ax,x1,y1,x2,y2);
plot(ax,x1,y1)
hold(ax,'on')
plot(ax,x2,y2)
注意:默认情形下,ax是hold off的。
axis([0 1 0 0.018]);
or
xlim(), ylim()
功能:绘制散点图
实现方法:plot(x,y,‘ro’)
‘ro’:表示颜色+形状。
常用颜色和形状见:绘图属性.md
实例:
x=1:5;
y=x.^2;
figure();
plot(x,y,'ro')
figure();
x = 1:5;
x_str = cell(1,length(x));
for i = 1:length(x)
x_str{i} = ['Q',num2str(x(i))];
end
y = x.^2;
plot(x, y, 'bo')
xticks(x)
xticklabels(x_str)
xtickangle(45)
功能:同一个自变量x,有两个因变量y1,y2。但y1,y2的量级相差很远,若是共用一个y轴,则不好同时显示两者的变化。因此需要建立各自的y轴。一左一右。
实例:
x=1:5;
y1=x.^2;
y2=log10(x);
figure();
yyaxis left;
plot(x,y1);
yyaxis right
plot(x,y2);
axis equal
功能:作二维图。
要求:x长度为a,y长度位b,Z为a*b
实例:
x=1:5;
y=1:10;
z=reshape(1:50,10,5)';
figure();
imagesc(x,y,z');
set(gca,'Ydir','normal');
功能:作三维图。通过view(2),可以2维显示
要求:
原始数据:x长度为a,y长度为b,z长度为a*b
处理后:[mesh_x,mesh_y]=meshgrid(x,y);
实例:
x=1:5;
y=1:10;
z=reshape(1:50,10,5)';
[mesh_x,mesh_y]=meshgrid(x,y);
surf(mesh_x,mesh_y,z')
view(2)
colorbar;
colormap('jet')
对比上面两幅二维图:
imagesc的每个点是一个矩形,surf的每个点是是一个网格,所以surf的矩形不代表一各点。
x1=-100:1:100;
x2=-100:1:100;
z=f(x1,x2);
[mesh_x,mesh_y]=meshgrid(x1,x2);
surf(mesh_x,mesh_y,z')
% view(2)
colorbar;
colormap('jet')
function result=f(x1,x2)
result=zeros(length(x1),length(x2));
for i=1:length(x1)
for j=1:length(x2)
result(i,j)=20+(x1(i)/30-1)^2+(x2(j)/20-1)^2-10*(cos(pi*(x1(i)/30-1))+cos(pi*(x2(j)/20-1)));
end
end
end
view(0,0)
可查看正视图
view(90,0)
可查看侧视图
view(0,90)
可查看俯视图
axis off
方法接口
h = gscatter(x,y,group,clr,sym)
(常用形式之一,更具体见matlab帮助文档)
x: 向量,所有数据点的横坐标
y:向量,所有数据买的纵坐标
group:向量,描述每一个数据点的group,可以是如下:
clr:指定color
sym:指定marker形状
使用场景
scatter plot by group
实例
sigma = 0.5;
n = 100;
x1 = sigma*randn(n,1)+1;
y1 = sigma*randn(n,1)+1;
label1 = zeros(n, 1) + 1;
x2 = sigma*randn(n,1)-1;
y2 = sigma*randn(n,1)-1;
label2 = zeros(n, 1) - 1;
Xdata = [x1,y1;x2,y2];
Ylabel = [label1;label2];
figure();
gscatter(Xdata(:,1), Xdata(:,2), Ylabel, 'br', 'xo')
xlabel('x');
ylabel('y');