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

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方法插值

[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画图

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;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容