进阶绘图
1.linspace logspace
linspace是Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100。
logspace(a,b,n),创建行向量,第一个是10^a,最后一个10^b,形成总数为n个元素的等比数列。
2.semilog:半对数坐标系一个轴是分度均匀的普通坐标轴,另一个轴是分度不均匀的对数坐标轴。
semilogx, semilogy, loglog,即后标为x的是在x轴取对数,为y的是y轴坐标取对数。loglog是x,y轴都取对数。
>> x = logspace(-1,1,100);
y = x.^2;
subplot(2,2,1);
plot(x,y);
title('Plot');
subplot(2,2,2);
semilogx(x,y);
title('Semilogx');
subplot(2,2,3);
semilogy(x,y);
title('Semilogy');
subplot(2,2,4);
loglog(x, y);
title('Loglog');
set(gca,'XGrid','on');
3.plotyy(x,y1,x,y2)-在同一张图上,用两个y轴绘制两个图像。
>> x = linspace(0,100);
y1 = x.^2;
y2 = x.^3;
plot(x,y1,x,y2)
4.histogram(x,num)--直方图,num表示需要几个直方块
>> x = randn(1,10000);
y = randn(10000,1);
subplot(1,2,1);histogram(x,2);
subplot(1,2,2);histogram(y,20);
5.bar绘制直方图--bar,bar3,barh和bar3h,
bar(x,y),x的长度必须和y的行数是一样的,x 必须单调递增或递减。
>> x = [1; 2];
y = [1 2 5 4 8; 1 2 3 4 5]
bar(x,y)
bar(x)
>> x = [1 2 5 4 8]; y = [x;1:5];
subplot(1,5,1); bar(x);
subplot(1,5,2); bar(y);
subplot(1,5,3); bar3(y);
subplot(1,5,4); barh(y);
subplot(1,5,5); bar3h(y);
6.pie(x,z,label)--饼图(会自动算出x中数所占的比列,并显示出来)z列表中值为1则代表该部分分离出来,label表示给每个部分填上备注,这时就会不显示百分比
>> a = [10 5 20 30];
label={'1', '2', '3', '4'}
subplot(2, 2, 1);pie(a,label);
subplot(2, 2, 2);pie(a,[1,1,1,1],label);
subplot(2, 2, 3);pie3(a,label);
subplot(2, 2, 4);pie3(a,[1 ,1, 1, 1],label);
7.stairs和stem--阶梯图,柱图
>> x = linspace(0,4*pi,40);
y = sin(x);
subplot(1,2,1);stairs(y);
subplot(1,2,2);stem(y);
8.errorbar(x,y,e)---对于每个点给出误差的范围
>> x = 0:pi/10:pi;
>> y = sin(x);
>> e = std(y)*ones(size(x));
>> errorbar(x,y,e);
9.fill()---重要的是找到每一个角对应的角度
>> t =(0:4:15)*pi/8; x = sin(t); y = cos(t);
fill(y,x,'y'); axis square off;
text(0,0,'WAIT','Color', 'k', 'FontSize', 80, ...
'FontWeight','bold', 'HorizontalAlignment', 'center');
10.plot3(x,y,z)--画出三维图