c=colorbar;set(c,'tickdir','out') % 朝外set(c,'YTick',-0.6:0.3:0.6); %色标值范围及显示间隔set(c,'YTickLabel',{'-0.6','-0.3','0.0','0.3','0.6'}) %具体刻度赋值
x = reshape(data1(:,1),1800,1320);
y = reshape(data1(:,2),1800,1320);
z = reshape(crust_h,1800,1320);
[C,H] =contourf(x,y,z,100); % contourf(peaks(20),10);
set(H,'LineColor','none');
colormap('jet');
h=
colorbar
;
caxis([4 10]); %
设置
grid显示范围
set(h,'Ylim',[3.
http://bbs.06climate.com/forum.php?mod=viewthread&tid=51247&extra=page%3D4
http://bbs.06climate.com/forum.php?mod=viewthread&tid=49521&typeid=12
https://blog.csdn.net/weixin_42614163/article/details/99677492
matlab
绘图的时候只用plot函数出来的图不一定符合自己最想要的格式,经常要对坐标的数字、范围、
间隔
做处理。
虽然不是什么很难的操作,但是确实常用,也容易忘记,所以就放在这里说明一下:
x = (1:50);
y = sin(x);
plot(x,y,'-r*');
xlabel('x name');% x轴名称
ylabel('y name');
legend('xxx'); ...
在
MATLAB
中,可以使用 `contourf` 函数绘制不等间距的等高线图,并使用 `
colorbar
` 函数添加相应的
色标
。下面是一个示例代码:
```
matlab
% 定义 x 和 y 的网格点
x = 1:10;
y = 1:10;
% 定义 z 的
值
,这里假设是一个不等间距的数据
z = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
2, 3, 4, 5, 6, 7, 8, 9, 10, 11;
3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
4, 5, 6, 7, 8, 9, 10, 11, 12, 13;
5, 6, 7, 8, 9, 10, 11, 12, 13, 14;
6, 7, 8, 9, 10, 11, 12, 13, 14, 15;
7, 8, 9, 10, 11, 12, 13, 14, 15, 16;
8, 9, 10, 11, 12, 13, 14, 15, 16, 17;
9, 10, 11, 12, 13, 14, 15, 16, 17, 18;
10, 11, 12, 13, 14, 15, 16, 17, 18, 19];
% 绘制等高线图
contourf(x, y, z);
% 添加颜色条,这里使用自定义的颜色映射
cmap = [1 0 0; 1 1 0; 0 1 0];
cmin = 1;
cmax = 19;
caxis([cmin, cmax]);
colormap(cmap);
colorbar
('Ticks', linspace(cmin, cmax, size(cmap, 1)), ...
'TickLabels', arrayfun(@(x) num2str(x), linspace(cmin, cmax, size(cmap, 1)), 'UniformOutput', false));
在上面的代码中,使用 `contourf` 函数绘制了一个不等间距的等高线图,然后使用自定义的颜色映射和 `
colorbar
` 函数添加相应的
色标
。其中,`cmin` 和 `cmax` 分别表示颜色条的最小
值
和最大
值
,`linspace` 函数用来生成一组均匀分布的
刻度
值
,`arrayfun` 函数用来将
刻度
值
转换为字符串类型,`UniformOutput` 参数用来指定输出结果是否是统一大小的。
需要注意的是,在绘制不等间距的等高线图时,需要确保数据是按照正确的顺序排列的,否则会导致绘图出错。同时,也需要根据具体的需求选择合适的颜色映射和
刻度
值
,以便更好地展示数据的特征。