如何绘制数据组用不同的颜色吗?

54视图(30天)
我有经度,纬度和深度数据。我绘制如下;
这些深度数据范围在0 -1000公里之间。
我希望每一个“圆”(数据点)有不同的Markerface颜色基于深度组;如0 - 100 - - >黄色;101 - 300——>蓝色;301 - 1000 - - >红色。有人能帮助我如何做呢?
Data =负载(“Depth.txt”,“ascii”);
朗=数据(:1);朗= 360 +朗;
lat =数据(:,2);
深度=数据(:,3);n =长度(深度);
图(1);clf;轴平等的;;
情节(经度、纬度、“o”);
ylabel (的纬度(度)),包含(的经度(度))
网格;
标题(“深度分销”)

接受的答案

沃斯
沃斯 2022年5月23日
一种方法是阴谋每个深度间隔一行,每一个都有不同的颜色/ MarkerFaceColor:
%,我编造一些随机数据,因为我没有你的文本文件:
Data =[兰德(100 1)-360 * 180 * -90 (rand(100 1) 1000 *兰德(100 1)];
%定义深度水平和颜色,绘制数据不同
%深度范围和不同的颜色:
depth_levels = (100 - 300);
颜色= [
1 1 0;%的黄色
0 0 1;%的蓝色
1 0 0];%的红色
朗=数据(:1);朗= 360 +朗;
lat =数据(:,2);
深度=数据(:,3);n =长度(深度);
图(1);clf;轴平等的;;
%将负和正depth_levels,避免边缘效应
depth_levels =(负无穷depth_levels Inf);
%为每个深度范围…
2 = 1:元素个数(depth_levels) 1
%得到逻辑索引数据点的范围
idx =深度> depth_levels (ii) &深度< = depth_levels (2 + 1);
%,并把它们与相应的颜色
情节(经度(idx)纬度(idx),
“线型”,“没有”,
“颜色”颜色(ii,:)
“标记”,“o”,
“MarkerFaceColor”、颜色(ii,:));
结束
ylabel (的纬度(度)),包含(的经度(度))
网格;
标题(“深度分销”)
或者,您可以使用 散射 颜色可选的输入:
图(2);clf;轴平等的;;
%初始化用于散射矩阵的颜色
c = 0(大小(数据,1),3);
%为每个深度范围…
2 = 1:元素个数(depth_levels) 1
%得到逻辑索引数据点的范围
idx =深度> depth_levels (ii) &深度< = depth_levels (2 + 1);
% c的那些行设置为相应的颜色
c (idx:) =颜色(2 * 1 (nnz (idx), 1),:);
结束
散射(经度、纬度,[],c,“填充”)
ylabel (的纬度(度)),包含(的经度(度))
网格;
标题(“深度分销”)
8的评论
沃斯
沃斯 2022年5月24日
显然在某些版本的MATLAB 这一 被称为 caxis ,所以试着
caxis ([10000]);
关于 repmat 一般来说,它的目的是 代表 licate一 里克斯(或 代表 吃一 里克斯)指定的方式。在本例中,我使用 repmat 构建colormap,需要红色重复7次(因为红色覆盖深度从300年至1000年)和蓝色重复2次(因为蓝色覆盖深度从100年到300年)。

登录置评。

更多的答案(0)

类别

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

下载188bet金宝搏

社区寻宝

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

开始狩猎!