【matlab】绘制云图 + 修改配色方案 + 保存配色方案
一、绘制云图
假设 x、y 为坐标向量,f 为各个坐标点所对应的函数值 的向量
1、需要根据 x、y 的范围进行划分,可以理解为建立坐标系或比例尺 X1和Y1
X1 = linspace(min(x),max(x),100); %将坐标均分成100份
Y1 = linspace(min(y),max(y),100);
2、利用插值计算,计算出 函数值f 在坐标X1、Y1上的值
[X,Y,F] = griddata(x,y,f,X1',Y1,'v4'); %'v4'代表插值方法为matlab4样条函数内插,也可用'linear','cubic','nearest'等
3、绘制云图
pcolor(X,Y,F);
shading interp %色彩平滑
colormap(Small_Rainbow) %使用自定义的配色方案
colorbar %分布柱图
4、修改参数,并对比
4.1 修改坐标系X1、Y1的精细度 。可以看出划分参数达到一定精度即可,过高的精度反而影响计算效率。
4.2 修改插值方法
可以看出,linear和nearset插值对生成云图而言,呈现效果并不好,而另外三者还需要进行更细致的对比
通过放大云图,对比局部,绘制出来的云图,在极值点附近的光滑程度 natural < cubic < v4,但cubic和v4相差不大。
而计算时间分别为:natrual为0.086秒、cubic为0.028秒,v4为0.637秒
由于本人所需要计算的数据量较小,采用呈现效果更好的 “v4”插值也无妨
4.3 云图绘制的其他函数,以及可修改参数
contourf画图时所采用的代码
[p,s] = contourf(X,Y,F,100);
title('绘图方法contourf,透明等高线,等高线间距100')
s.LineColor = 'none'
shading interp %色彩平滑
通过对比,采用pcolor更优,代码更少,效果也更好
参考资料:
用matlab画云图或由离散点生成云图-MATLAB基础-MATLAB之家
matlab绘制云图或三维曲面图_yangguangdblu的博客-CSDN博客_matlab画云图
https://jingyan.baidu.com/article/ea24bc39fbfa9dda62b3318b.html
二、修改配色方案
1、使用自定义配色方案
有两种方法调出“颜色图编辑器”,第一种是在命令行内输入colormapeditor;另一种是在绘图之后,在figure页面的上方菜单,点击“编辑——颜色图”即可调出。(matlab2016a)
之后通过删减、增加颜色索引,或修改索引所对应的颜色,即可将配色修改成自己想要的配色,比如这样:
但是这样的修改,每次重新启动matlab,都需要重新设置。十分麻烦
2、采用代码,使用自定义方案
设置色彩索引(锚点)的矩阵,并将其命名为Small_Rainbow,然后调用这个自定义配色方案
Small_Rainbow = [0 0 1; %参考知乎大佬的文章,它采用的是0-255,但是我尝试了一下不行
0 1 1; %所以我采用0-1的形式,中文文档也是这么用的
0 1 0;
1 1 0; %5行表示一共有5个颜色标签(锚点)
1 0 0]; %3列分别表示R,G,B三种颜色
colormap(Small_Rainbow) %调用自定义的配色方案
此时的呈现效果···不太理想,原因是颜色缺少更合适的层次,即便插值或者绘图的精度足够,但是直观上看依然呆板。所以下一步要细化颜色层次
3、优化自定义方案
将5个锚点之间用更多的插值填充,得到了 81 x 3 的一个颜色矩阵,同样命名为Small_Rainbow,并调用,前后结果对比:
参考资料:
三、保存配色方案、
1、保存配色方案
2、调用配色方案
load 'Small_Rainbow.mat' %导入配色方案
完整代码
% 导入并生成云图
data = load('C:\Users\Administrator\Desktop\IMR_00000010.txt');
load 'Small_Rainbow.mat' %导入配色方案
%确定像素坐标矩阵
x = data(:,1)';
y = -1 * data(:,2)';
%确定生成云图的内容
f = data(:,3)';
%生成坐标轴
X1 = linspace(min(x),max(x),100);
Y1 = linspace(min(y),max(y),100);
%插值计算
[X,Y,F] = griddata(x,y,f,X1',Y1,'v4');
%生成仿彩色图
pcolor(X,Y,F);
title('绘图方法pcolor')
shading interp %色彩平滑
colormap(Small_Rainbow) %使用自定义的配色方案
colorbar %分布柱图
总结
多看官方文档,能救百病
更多推荐
所有评论(0)