Octave 倍频程-更改同一图形中不同绘图的颜色

Octave 倍频程-更改同一图形中不同绘图的颜色,octave,Octave,我试着在同一个数字的八度音阶上改变几个绘图的特定颜色。我只是想让它们完全不同或完全相同,我想要两种不同的颜色 X0 = [0 0]; tspan = [0:0.1:10] global n; n = 1; global TFj; figure for TFj = 0:0.5:10 res = lsode('redemet', X0, tspan); plot(tspan,res,'Linewidth',3); text(tspan(end),res(end,1),sprintf(

我试着在同一个数字的八度音阶上改变几个绘图的特定颜色。我只是想让它们完全不同或完全相同,我想要两种不同的颜色

X0 = [0 0];
tspan = [0:0.1:10]

global n;
n = 1;
global TFj;

figure
for TFj = 0:0.5:10
  res = lsode('redemet', X0, tspan);
  plot(tspan,res,'Linewidth',3);
  text(tspan(end),res(end,1),sprintf('TF = %f, n = %f',TFj,n))
  xlabel('Tempo Cultivo,h','Fontsize',15,'color',[0.1 0.1 0.8])
  ylabel('Especies','Fontsize',15,'color',[0.1 0.1 0.8])
  title('Expressao Genes','Fontsize',40)
  legend('mRNA','Pi')
  grid on
  hold on
end
hold off
redemet函数表示两个ODE(dmRNA/dt和dPi/dt)。我希望代表mRNA的线是一种颜色,代表Pi的线是另一种颜色。

使用color属性

x=2*pi*[0:.01:1];
plot(x,cos(x),"color","red")
hold on
plot(x,sin(x),"color","blue")
我明白了(见)

在线条
绘图(tspan,res,'Linewidth',3)
中,当我添加color属性时,我没有在它的两个结果中划分
res
。我必须写下:

绘图(tspan,res(:,1),'Linewidth',3,'color',…,tspan,res(:,2),'Linewidth',…)


res(:,1)
res(:,2)
I丢失了。

为什么要对循环变量使用
global
?在我看来效率很低。实际上,你根本不应该使用
global
global
是我们的教授告诉我们,当我们想要评估某个参数如何影响某个东西时(或者换句话说,当我们不希望该参数是固定值时),应该使用的方法。但是如果有更好的方法,请告诉我怎么做。你可能误解了你的教授。全局变量在非常特定的情况下非常有用,可以跨不同的函数共享变量。你只有一个脚本,使用
global
是完全多余的,可能会减慢你的代码速度。不,我没有误解我的教授,因为他写了那部分代码,我有一个简化版本,其中n和TFj有固定的值。但我真的不知道另一种方法,问题是我用2个ODE绘制了1个函数,所以对于我绘制的每个图,都会出现两条曲线。我想要的是,对于每个情节,每首颂歌的颜色都是一样的。例如,如果我在同一个图中绘制了3个图-
对于TFj=0:1:2
,我希望所有图的第一个颂歌的颜色都是绿色,而所有图的第二个颂歌的颜色都是蓝色。我的身材应该有3条绿色曲线和3条蓝色曲线。如果我按照你建议的方式做,每种颜色有两条曲线。你可以用同样的方法来做任何数量的绘图。没有任何障碍来描绘2线红色、2线蓝色和2线绿色。我想我没有很好地解释我自己。我只想要两种颜色,不管我画了多少个图,画了多少条曲线。每个绘图生成两条曲线,如果我有n个绘图,我希望n条曲线为蓝色,n条曲线为红色,并且没有其他颜色。在您的示例中,在每个绘图中生成一条曲线。我的问题是,当我调用一个生成两条曲线的函数,而我不单独绘制这些曲线时,我该如何做呢。