Matlab 绘制散点图倍频程

Matlab 绘制散点图倍频程,matlab,octave,scatter-plot,Matlab,Octave,Scatter Plot,我有两个数据集和一行: 例如: dt1X = [1:30]; dt1Y = [1:30]; dt2X = [1:30]; dt2Y = [0.5:0.5:15.0]; line = [2 1]; % y= 2 + x; 我想用不同的颜色在同一个图形中绘制这两个数据集和线条。我该怎么做 我尝试了下面的行来更改颜色,但它给出了以下错误:数组属性cdata的值无效 hold on; scatter(dt1X,dt1Y,[],"r"); %this line give error scatter(

我有两个数据集和一行:

例如:

dt1X = [1:30];
dt1Y = [1:30];

dt2X = [1:30];
dt2Y = [0.5:0.5:15.0];

line = [2 1]; % y= 2 + x;
我想用不同的颜色在同一个图形中绘制这两个数据集和线条。我该怎么做

我尝试了下面的行来更改颜色,但它给出了以下错误:数组属性cdata的值无效

hold on;
scatter(dt1X,dt1Y,[],"r"); %this line give error
scatter(dt2X,dt2Y,[],"g");
hold off;
编辑:

结果:没有错误,但两个数据集都用蓝点绘制


使用r和“r”不会改变任何东西,在这两种情况下都是一样的。

要清除该图,请首先添加

clf
以前

hold on;
scatter(dt1X,dt1Y,[],[],"r");
scatter(dt1X,dt1Y,[],[],"g");
hold off;
然后,您将看到没有绘制任何内容。因此,将这些行替换为

hold on;
scatter(dt1X,dt1Y,"r");
scatter(dt1X,dt1Y,"g");
hold off;

我也会像这样重新排列您的代码:

dt1X = [1:30];
dt1Y = dt1X;

line = [2 1]; % y= 2 + x;

dt2X = dt1X;
dt2Y = line(1) + (line(2) * dt2X); % y= 2 + x;

clf
hold on
plot(dt1X,dt1Y,'r');
plot(dt2X,dt2Y,'g');

在Matlab中,将双引号替换为单引号'。除此之外,我没有得到任何errorsTry另一个[],在r.使用Octave 3.7.7+为我工作之前,我没有稳定的版本可供测试。@David通过添加另一个[]参数,我没有给出错误,但是。它将两个数据集绘制成相同的蓝色。@LuisMendo I try and'但它不会改变函数的行为。谢谢您的回答,代码只是示例。我需要画一些更复杂的东西。我用绘图函数而不是分散函数解决了这个问题。plotX,Y,x,color,r运行良好。
dt1X = [1:30];
dt1Y = dt1X;

line = [2 1]; % y= 2 + x;

dt2X = dt1X;
dt2Y = line(1) + (line(2) * dt2X); % y= 2 + x;

clf
hold on
plot(dt1X,dt1Y,'r');
plot(dt2X,dt2Y,'g');