如何创建与MATLAB毕业标记颜色的散点图?(How do I create a scatter p

2019-08-04 06:16发布

我想绘制一个简单的散点图在MATLAB,带有标记的颜色从光谱到另一个的一端变化(例如,红色,橙色,黄色....蓝色,紫色)。

我的数据进行比较的水与水的质量河流的量,随着时间的推移(3简单列:时间,数量,质量)。 我想绘制X,数量VS质量Y的散点图,但与色彩进展随着时间的推移,这样就可以看到质量随着时间的进展。

我将需要产生很多这种类型的图表,所以如果我能找到一段代码,会为数据集的任何长度,那将是非常有益的工作。

提前非常感谢帮助Matlab的新手!

Answer 1:

您可以使用的颜色参数scatter

如果你的数据在时间上已排序不是简单的使用方法:

% let n be the number of points you have
cmp = jet(n); % create the color maps changed as in jet color map
scatter(x, y, 10, cmp, 'filled');

否则,你需要将你的数据首先排:

[time, idx] = sort(time);
x = x(idx);
y = y(idx);
cmp = jet(n); % create the color maps changed as in jet color map
scatter(x, y, 10, cmp, 'filled');


Answer 2:

通过附加可变着色散点图的最简单的方法是简单地把它作为“颜色” -argument。 假设你有xy ,和time (其中时间是一个数值向量。如果时间包含日期字符串时,调用datenum就可以了,第一个)。 然后,你可以写

scatter(x,y,[],time,'filled')

然后,彩条轴会告诉你哪个时间点的特定颜色对应。 重要的是,这将正常推进的颜色,即使在情况下,测量之间的时间不统一。

/旁白:默认颜色映射是jet ,这是可视化的平稳过渡非常糟糕,我建议你下载一个感知颜色表提高从文件交换。 要使用它来设置颜色表,你可以调用

cmap = pmkmp(length(time));
colormap(cmap);


文章来源: How do I create a scatter plot with graduated marker colours in MATLAB?