目录
1.4.1 Stacked and Horizontal Bar Charts
2.3 visualizing data as an image :imagesc()
3.4 principles for 3D surface plots
3.5 Surface Plots:mesh() and surf()
1.Advanced 2D plots
special plots
1.1 Logarithm Plots
x=logspace(-1,1,100);%x从10的-1次方到10的1次方,其中有100个数
y=x.^2;%y也是100个数
subplot(2,2,1);%第一个图
plot(x,y);
title('plot');
subplot(2,2,2);%第二个图
semilogx(x,y);%x取对数就变成 -1 、0、1,y轴正常
title('semilogx');
subplot(2,2,3);%第三个图
semilogy(x,y);%y轴取对数
title('semilogy');
subplot(2,2,4);%第四个图
loglog(x,y);%两个轴都取对数
title('loglog');
结果如下:
如果我们可以加上网格,可以清楚很多;
set(gca,'xgrid','on');
结果如图:
1.2 plotyy()
即两个y轴,可以看到两个变量,例如自由落体时要看速度和他的加速度,就可以一张图方便啦;
先想象一下这个函数,
那我们如何改变两边的tick、label等呢?
x=0:0.01:20;
y1=200*exp(-0.05*x).*sin(x);%函数
y2=0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2]=plotyy(x,y1,x,y2);%获取Handle(前面是三个handle),最主要的就是AX,后面是函数y1和函数y2,如何处理AX如下
set(get(AX(1),'ylabel'),'string','left y-axis');%设置左边y轴,名称是‘left y-axis’
set(get(AX(2),'ylabel'),'string','right y-axis');%设置右边y轴
title('labeling plotyy');
set(H1,'linestyle','--');%设置画线的风格
set(H2,'linestyle',':');
运行如下:
1.3 Histogram
可以看看整体分布是什么样子;
例子如下:
y=randn(1,1000);%randn是指产生1000个乱数的意思
subplot(2,1,1);
hist(y,10);%有10个长矩形
title('Bins = 10');
subplot(2,1,2);
hist(y,50);%有50个长矩形
title('Bins = 50');
运行如图所示
1.4 Bar Charts
histogram是在看整体的情况,那如果我们想要看个人的情况怎么办呢?
官方定义:bar(
创建一个条形图,y
)y
中的每个元素对应一个条形。如果 y
是 m×n 矩阵,则 bar
创建每组包含 n 个条形的 m 个组。
x=[1 2 5 4 8];%每一个长条的高度
y=[x;1:5];%y是一个matrix ,会分成两组bar
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');
运行如下:
1.4.1 Stacked and Horizontal Bar Charts
不同形式的展现;
例子如下:
x=[1 2 5 4 8];
y=[x;1:5];
subplot(1,2,1);
bar(y,'stacked');%堆栈式的bar
title("stacked");
subplot(1,2,2);
barh(y);%水平式的bar
title('horizontal');
接下来先介绍一下:
stacked:每一个块的高度表示每一个的大小;
指令bar(y,‘stacked’); 格式说明
horizontal 将柱状图变成水平的;格式:barh() bar 后面加一个 horizontal 的首字母
1.4.2 exercise
将水平图改成柱状图;
则即 barh(y,'stacked');
嘿嘿;
1.5 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]);
解读:pie(a),a是一个向量,pie(a,[0 0 0 1])第二个参数是一个vector ,如果哪个位置是1,则表示pie chart 图哪个扇形会出现裂痕;
代码与运行如下:
1.5.1 exercise
由上面的定义我们已经知道啦;
只需要把后面都改成1就可以了。即:pie(a,[1,1,1,1]);
1.6 Polar chart
就是用角度和半径来画图;所以这个的输入就是(theta,r);
五边形怎么画?可以用linespace将其分成五等分;即linespace(0,2pi,6);五等份,那得有六个数才行;半径为1即r=ones(1,length(theta));
例子:
x=1:100;theta =x/10; r=log10(x);
subplot(1,4,1);polar(theta,r);%第一幅图
theta=linspace(0,2*pi);r=cos(4*theta);
subplot(1,4