matlab绘图
前言
图像是结果的一种可视化表现,它能直观的体现你的结果,并且能体现你获得结果的准确性,在当前的大数据时代,在做数据分析的时候,将其可视化可以直观多维的展示数据,可以让人们更好的发现并且记住数据的特征,因此很多时候掌握一些绘图方法是非常重要的,而使用MATLAB可以非常简单的进行绘图(当然还有很多其它工具可供使用),下文是我所了解的一些基本绘图方法的整理,其中很多很多内容非常基础,希望对你能有些帮助。
matlab绘图示例
单图绘制
f = @(x) exp(2*x);
x = 0:0.1:2;
plot(x, f(x));
多图绘制
x = logspace(-1,1,100);
y = x.^2;
plot(x,y);
subplot(2,2,1);
title('plot');
subplot(2,2,2);
title('semilogy');
semilogy(x,y);
subplot(2,2,3);
semilogx(x,y);
title('semilogx');
subplot(2,2,4);
loglog(x,y)
title('loglog');
多图圆形
t = 0:0.1:2*pi; x = 3*cos(t); y = sin(t);
subplot(2,2,1); plot (x,y); axis normal;
subplot(2,2,2); plot(x,y); axis square;
subplot(2,2,3); plot(x,y); axis equal;
subplot(2,2,4); plot(x,y); axis equal tight;
柱状图、直方图(Histogram)
y = randn(1,1000);
subplot(2,1,1);
hist(y,10);
title('bins = 10');
subplot(2,1,2);
hist(y,50);
title('Bins = 50')
Bar Charts(分组图)
x = [1 2 5 4 8];
y = [x;1:5];
subplot(1,3,1); bar(x); title('A bargraph of vector x');
subplot(1,3,2); bar(y); title('A bargraph of vector y');
subplot(1,3,3); bar3(y); title('A 3D bargraph');
Stacked and Horizontal Bar Charts (堆叠分组)
x = [1 2 5 4 8];
y = [x;1:5];
subplot(1,2,1);
bar(y, 'stacked');
title('stacked');
subplot(1,2,2);
barh(y);
title('Horizontal');
Pie Charts(饼状图)
a = [10 5 20 30];
subplot(1,3,1); pie(a);
subplot(1,3,2); pie(a, [0,0,0,1]);
subplot(1,3,3); pie3(a, [0,0,0,1]);
Polar Chart(进阶图)
% 在即坐标系上绘制三角形
polar([0, 2 / 3 * pi, 4 / 3 * pi, 2 * pi], [1, 1, 1, 1]);
% 生成 1 ~ 100 之间的数 , 步长 1
x = 1 : 100;
% 绘制第 1 张极坐标图
subplot(2, 2, 1);
% 角度值向量
theta = x / 10;
% 半径值向量
r = log10(x);
% 绘制极坐标图
polar(theta, r);
% 绘制第 2 张极坐标图
subplot(2, 2, 2);
% 角度值向量
theta = linspace(0, 2 * pi);
% 半径值向量
r = cos(4 * theta);
% 绘制极坐标图
polar(theta, r);
% 绘制第 3 张极坐标图
subplot(2, 2, 3);
% 角度值向量
theta = linspace(0, 2 * pi, 6);
% 半径值向量
r = ones(1, length(theta));
% 绘制极坐标图
polar(theta, r);
% 绘制第 4 张极坐标图
subplot(2, 2, 4);
% 角度值向量
theta = linspace(0, 2 * pi);
% 半径值向量
r = 1 - sin(theta);
% 绘制极坐标图
polar(theta, r);
Stairs and Stem Charts (阶梯图)
x = linspace(0, 4*pi, 40);
y = sin(x);
subplot(1,2,1); stairs(y);
subplot(1,2,2); stem(y);
Boxplot and ErrorBar (误差条的线图)
x = 0:pi/10:pi;
y = sin(x);
e = std(y)*ones(size(x));
errorbar(x,y,e);
图例样式
G = [46 38 29 24 13];
S = [29 27 17 26 8];
B = [29 23 19 32 7];
h = bar(1:5, [G' S' B']);
title('Medal count for top 5 coutries in 2012');
ylabel('number of medals');
xlabel('country');
legend('gold', 'silver', 'bronze');
Imagesc()
[x, y] = meshgrid(-3:0.2:3, -3:0.2:3);
z = x.^2 + x.*y + y.^2; surf(x,y,z); box on;
set(gca, 'FontSize', 16); zlabel('z');
xlim([-4 4]); xlabel('x'); ylim([-4 4]); ylabel('y');
imagesc(z); axis square; xlabel('x'); ylabel('y');
colorbar;
colormap(hot);
colormap(cool);
colormap(gray);
a = ones(256,3);
colormap(a);
x = [1:10; 3:12; 5:14];
imagesc(x);
colorbar;
3D plots
% plot3
% surf
% surfc
% surface
% meshc
% contour
% contourf
% 3D
x = 0:0.1:3*pi;
z1 = sin(x);
z2 = sin(2*x);
z3 = sin(3*x);
y1 = zeros(size(x));
y3 = ones(size(x));
y2 = y3./2;
plot3(x,y1,z1, 'r', x,y2,z2, 'b', x,y3,z3,'g'); grid on;
xlabel('x-axis'); ylabel('y-axis'); zlabel('z-axis');
% 螺旋图
t = 0:pi/50:10*pi;
plot3(sin(t), cos(t), t);
grid on; axis square;
% 3D螺旋图
turns = 40*pi;
t = linspace(0, turns,4000);
x = cos(t).*(turns-t)./turns;
y = sin(t).*(turns-t)./turns;
z = t./turns;
plot3(x,y,z); grid on;
% 3D网状图
x = -3.5:0.2:3.5;
y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2 - Y.^2);
subplot(1,2,1); meshc(X,Y,Z);
subplot(1,2,2); surfc(X,Y,Z);
% 球形图
[X, Y, Z] = sphere(64); h = surf(X, Y, Z);
axis square vis3d off;
reds = zeros(256, 3); reds(:, 1) = (0:256.-1)/255;
网友评论