郭彦甫Matlab第五节笔记——进阶绘图

这篇博客深入探讨了Matlab的高级绘图技巧,涵盖了2D特殊图表如对数图、双Y轴图、直方图、条形图、饼图、极坐标图、楼梯图和茎图。在颜色空间部分,介绍了fill、RGB和用imagesc可视化数据。进一步,文章详细讲解了3D图,包括plot3、表面图、等高线图和专业绘图技术,帮助提升科学数据的可视化效果。
摘要由CSDN通过智能技术生成

目录

1.Advanced 2D plots  

special plots

1.1 Logarithm Plots

 1.2 plotyy()

 1.3  Histogram

1.4  Bar Charts

 1.4.1 Stacked and Horizontal Bar Charts

1.4.2 exercise 

1.5 Pie charts

 1.5.1 exercise

1.6 Polar chart

​ 1.6.1 exercise

1.7 Stairs and Stem charts

1.7.1 exercise

 1.8 Boxplot and Error Bar

2.color space

2.1 fill()

2.1.1 exercise

 2.2  RGB

2.2.1 exercise 

2.3 visualizing data as an image :imagesc()

 2.3.1 Color Bar and Scheme

 2.3.2 Built-in Colormaps

 2.3.3 Exercise

3.3D plots

 3.1 2Dvs3D

3.2 plot3()

 3.3 more 3D Line Plots

 3.4 principles for 3D surface plots

 3.5 Surface Plots:mesh() and surf()

3.6 contour() 

 3.6.1 various contour 

3.6.2 exercise

 3.7 meshc()and surfc()

3.8  View Angle:view()

​ 3.9 Light:light()

 3.10 patch

 3.11 profession 


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
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值