2016-10-10 516 views

回答

2

不幸的是,fnplt不接受线图的标准Color参数/值对,也没有实际存储它创建的图的任何图形句柄。你可以做的是得到你调用fnplt之前和之后的所有剧情句柄的列表,以获得创建的对象的句柄,然后直接操纵它们的属性。

% Get a list of all graphics within the current axes 
before = findall(gca); 

% Plot your function 
fnplt(s); 

% Figure out all of the graphics that were added to the axes by fnplt 
added = setdiff(findall(gca), before); 

% Alter their appearance. 
set(added, 'Color', [1 0 0]) 
+0

工程就像一个魅力。 MathWorks应将其作为其文档的一部分包含在内!你的方法比我问的要多得多。现在我可以调整该行的更多属性。谢谢先生! –

+0

我可以问一个后续?是否可以设置“分段”颜色?尽管's'看起来像一个“整个对象”,我知道给出's'的“关键点”。我希望'keyPt1'和'keyPt2'之间的's'段是一种颜色,'s''的另一段,比如'keyPt4'和'keyPt5'之间是另一种颜色。这不能通过生成多个样条曲线并单独设置颜色来实现,因为这些拼凑在一起的短曲线将不再提供适合所有点的原始“s”。谢谢! –

+1

@SibbsGambling你可以把上面的代码放在一个循环中,并提供一个向量输入作为第二个输入到'fnplt'来指定绘制一个函数的范围。 'fnplt(s,[keyPt1,keyPt2]); fnplt(s,[keyPt2,keyPt3])' – Suever