Matlab–三种填色图与插值

用matlab画一些二维填色,目前主要接触到函数有两个对点填色的函数pcolor和contourf,以及一个对格子填色的函数image

pcolor本质上是对点填色,函数自带的属性也可插值

contourf是一个画等值线的函数,函数自身所画出的曲线不够平滑,若插值需要借助griddata等函数对数据进行预处理

具体函数属性细节的设置见官网:

https://ww2.mathworks.cn/help/matlab/ref/pcolor.html

https://ww2.mathworks.cn/help/matlab/ref/contourf.html#mw_e930b555-4fc5-4db1-8907-5d10f7aac1c0

https://ww2.mathworks.cn/help/matlab/ref/griddata.html

下面是花了半小时做的简单对比

插值多少对高值有所损耗,综合来看,马赛克最清晰直接了。

1:pcolor直接画图以及加入shading interp

Matlab--三种填色图与插值

Matlab--三种填色图与插值

Code:

fontsize=18;

pd = makedist( Normal )

[x,y] = meshgrid(1:1:10,1:1:10);

value=random(pd,[10,10])

s=pcolor(x,y,value);

% shading interp; 选择插值与否

set(s, edgecolor , none );

colormap jet;colorbar;

caxis([-3,3])

set(gca, FontSize ,fontsize, FontName , Times New Roman , FontWeight , bold );

2:contourf画图与使用griddata v4方法插值

Matlab--三种填色图与插值

Matlab--三种填色图与插值

[C,h]=contourf(x,y,value,20);

set(h, Color , none );

colormap jet;colorbar;

caxis([-3,3])

set(gca, FontSize ,fontsize, FontName , Times New Roman , FontWeight , bold );

figure(2)

[xq,yq]=meshgrid(1:0.1:10,1:0.1:10);

value_q=griddata(x,y,value,xq,yq, v4 )

[C,h]=contourf(xq,yq,value_q,20);

set(h, Color , none );

colormap jet;colorbar;

caxis([-3,3])

set(gca, FontSize ,fontsize, FontName , Times New Roman , FontWeight , bold );

3:image画图

Matlab--三种填色图与插值

x=1:10;y=1:10;

pd = makedist( Normal )

value=random(pd,[10,10])

image(x,y,value, CDataMapping , scaled )%后面的参数是根据数值大小选取colorbar着色范围

% set(gca, YDir , normal ); %若y轴为时间,可将y轴倒置

colormap jet;colorbar;

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容