有可能创建这个colormap和相应的Matlab colorbar吗?

42视图(30天)
你好,
我想用这样的colorbar图:
你可以看到每25 25个颜色已经改变了。现在我想要:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0-25 = # fff496
25 - 50 = # fcd70d
50 - 75 = # adff2f
75 - 100 = # 45 ff2f
100 - 125 = # 9 cb63b
125 - 150 = # 339445
150 - 175 = # 1 aa05b
175 - 200 = # 17 baa7
200 - 225 = # 159 fd0
225 - 250 = # 2 f52a4
250 - 275 = # 2 f449d
275 - 300 = # 4 f499f
300 - 325 = # 7550 a0
325 - 350 = # 50376 d
= # 2 b1d3a超过350
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
我不知道如何设置这样的东西。这是我的代码:
S = shaperead (“country_Boundary.shp”);
朗= S.X;
lat = S.Y;
情节(经度、纬度、“- k”)
持有
甘氨胆酸ax =;
xL = ax.XLim;
yL = ax.YLim;
rect_x = (-0.25 - -0.25 0.25 - 0.25);
rect_y = (0.25 - -0.25 -0.25 - 0.25);
x = {: 1};
y = {: 2};
z = {: 3};
colorbar
%定义的开始和结束使用十六进制颜色- > rgb转换器从这个回答://www.tatmou.com/matlabcentral/answers/458086-how-to-specify-line-color-using-a-hexadecimal-color-code
start_color = sscanf (“00飞行符”,' % 2 x % 2 x % 2 x '3 [1])/ 255;
end_color = sscanf (0000 ff,' % 2 x % 2 x % 2 x '3 [1])/ 255;
num_colors = 100;
%创建一个地图之间的线性插值
%即三列插值Red1 Red2,等等。
clr = [linspace (start_color (1) end_color (1) num_colors)“linspace (start_color (2), end_color (2), num_colors)“linspace (start_color (3), end_color (3), num_colors) ');
colormap (clr)
zlim =(最小(z)最大(z)) + (-0.1 + 0.1);
clr_val = @ (z) clr(装天花板(interp1 (zlim, [0, 1], z) * num_colors),:);
i = 1:元素个数(x)
p (i) =补丁(rect_x + x (i), rect_y + y(我),
clr_val (z (i)),
“EdgeColor”,“没有”);
结束
斧子。XLim = xL;
斧子。YLim =黄;
caxis ([min (z) max (z)))
我也附上我的数据。谢谢大家。
2的评论
BN
BN 2020年5月6日
你好,非常感谢你的建议。我下载并使用它。但我认为这导致了错误的。我更换这部分:
start_color = sscanf (“00飞行符”,' % 2 x % 2 x % 2 x '3 [1])/ 255;
end_color = sscanf (0000 ff,' % 2 x % 2 x % 2 x '3 [1])/ 255;
num_colors = 100;
%创建一个地图之间的线性插值
%即三列插值Red1 Red2,等等。
clr = [linspace (start_color (1) end_color (1) num_colors)“linspace (start_color (2), end_color (2), num_colors)“linspace (start_color (3), end_color (3), num_colors) ');
colormap (clr)
由:
num_colors = 100;
%创建一个地图之间的线性插值
%即三列插值Red1 Red2,等等。
mycolormap = customcolormap (linspace (0, 1, 15), {“# fff496”,“# fcd70d”,“# adff2f”,
“# 45 ff2f”,“# 9 cb63b”,# 339445的,“# 1 aa05b”,“# 17 baa7”,“# 159 fd0”,“# 2 f52a4”,
“# 2 f449d”,“# 4 f499f”,“# 7550 a0”,“# 50376 d”,“# 2 b1d3a”});
colorbar (“southoutside”);
colormap (mycolormap);
但结果图的colormap是错误的,当我检查我的表数据。
这是我使用的完整代码:
S = shaperead (“country_Boundary.shp”);
朗= S.X;
lat = S.Y;
情节(经度、纬度、“- k”)
持有
甘氨胆酸ax =;
xL = ax.XLim;
yL = ax.YLim;
rect_x = (-0.25 - -0.25 0.25 - 0.25);
rect_y = (0.25 - -0.25 -0.25 - 0.25);
x = {: 1};
y = {: 2};
z = {: 3};
%定义的开始和结束的颜色
start_color = sscanf (“00飞行符”,' % 2 x % 2 x % 2 x '3 [1])/ 255;
end_color = sscanf (0000 ff,' % 2 x % 2 x % 2 x '3 [1])/ 255;
num_colors = 100;
%创建一个地图之间的线性插值
%即三列插值Red1 Red2,等等。
mycolormap = customcolormap (linspace (0, 1, 15), {“# fff496”,“# fcd70d”,“# adff2f”,“# 45 ff2f”,
“# 9 cb63b”,# 339445的,“# 1 aa05b”,“# 17 baa7”,“# 159 fd0”,“# 2 f52a4”,“# 2 f449d”,“# 4 f499f”,
“# 7550 a0”,“# 50376 d”,“# 2 b1d3a”});
colorbar (“southoutside”);
colormap (mycolormap);
% clr = [linspace (start_color (1) end_color (1) num_colors)“linspace (start_color (2), end_color (2), num_colors)“linspace (start_color (3), end_color (3), num_colors) ');
% colormap (clr)
zlim =(最小(z)最大(z)) + (-0.1 + 0.1);
clr_val = @ (z) mycolormap(装天花板(interp1 (zlim, [0, 1], z) * num_colors),:);
i = 1:元素个数(x)
p (i) =补丁(rect_x + x (i), rect_y + y(我),
clr_val (z (i)),
“EdgeColor”,“没有”);
结束
斧子。XLim = xL;
斧子。YLim =黄;
caxis ([min (z) max (z)))
;
你知道问题是什么吗?
谢谢你!

登录置评。

接受的答案

Guillaume
Guillaume 2020年5月6日
注意,因为R2019b,您可以编写文字十六进制(二进制)数字直接进入matlab。
我没有与您的数据映射工具来测试,但似乎你后如下:
hexmap = [
0 xfff496
0 xfcd70d
0 xadff2f
0 x45ff2f
0 x9cb63b
0 x339445
0 x1aa05b
0 x17baa7
0 x159fd0
0 x2f52a4
0 x2f449d
0 x4f499f
0 x7550a0
0 x50376d
0 x2b1d3a];%我用notepad++列模式提取你的十六进制值,添加0 x
提出= im2double(重塑(定型(hexmap,“uint8”),4,[])');%将32位00 rrbbgg十六进制转换为8位四胞胎(RR GG, BB, 00)然后重新调节0:1
提出= fliplr城市规划机构(cmap (: 1:3));%重新排序到R G B三胞胎。
%演示图片仅供测试
图;显示亮度图像(托普利兹(0:400));
%应用colormap与正确的规模和显示正确的刻度线。
colormap城市规划机构(cmap);
caxis (375 [0]);%,以匹配您的间距
colorbar (“滴答”,0:50:350);

更多的答案(0)

类别

找到更多的在Colormaps帮助中心文件交换

标签

下载188bet金宝搏


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!