如何在不同颜色的图形上绘制标记

时间:2012-07-28 11:23:11

标签: matlab plot markers

我现在有这样的代码:

fDeals = fopen([logsFolder stock '_deals.log']);
data = textscan(fDeals, '%f:%f:%f:%f %f,%f %f,%f %f,%f %f');
fclose(fDeals);

% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';

flvec = [1 1e-16];
y = [data{5:6}] * flvec';

ammount = data{11};

xindays = x / (24*60*60);

plot(xindays, y, 'go','MarkerSize',6,'LineWidth',3);

它工作正常但它总是创建绿色标记。如果金额> 1,我需要创建绿色标记0否则我想创建红色标记。怎么做?

可能我应该创建单独的xGreenxRedyGreenyRed数组,但是我需要以某种方式将文件行分成两组 - 使用>行0金额和行数< 0金额(金额从不为0)。

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

markerIDX = ammount > 0;

plot(xindays(markerIDX), y(markerIDX), 'go','MarkerSize',6,'LineWidth',3);
plot(xindays(~markerIDX), y(~markerIDX), 'ro','MarkerSize',6,'LineWidth',3);

但请注意,这只适用于xindaysyammount大小相同的情况。

答案 1 :(得分:1)

您还可以使用统计工具箱中的GSCATTER功能:

group = ammount > 0;
h = gscatter(xindays, y, group, 'gr', 'o', 6);
set(h, 'LineWidth',3)
legend(h, {'group 1','group 2'})