python i的MATLAB版本

2024-10-03 21:32:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要为同一轴上的一系列绘图指定颜色和标记。在Python中,我只需为每一个创建一个迭代器,然后使用next()将它们按顺序逐个取出。我在MATLAB中找不到等价的;我找到的所有示例都涉及按索引显式调用包含颜色和标记的列表,但这排除了在不使用匹配迭代器的循环中使用它们。有没有更合适的替代物来代替迭代器的概念?在

或者,在MATLAB中有没有更合适的方法来实现这一点?在


Tags: 方法标记概念绘图示例列表顺序颜色
2条回答

可以在plot命令中定义打印的外观(如颜色和标记)。E、 g.plot(1:5,'-go')将生成一个带有o制造商的绿色绘图。(Info


或者,您确实可以在轴上迭代绘图。如果在一个命令中执行所有绘图,例如

h = plot(1:5,[1:5;2:2:10]);

那么h将是图表线对象的向量,然后可以使用

^{pr2}$

并设置如下属性:

h(i).LineWidth = 2;
h(i).Marker = '*';

或者在2014年之前的MATLAB版本中:

set(h(i),'LineWidth',2)
set(h(i),'Marker','*')

如果在单独的命令中绘制绘图,则可以手动收集向量中返回的图表线对象,然后执行相同的操作(当然也可以直接修改它们)。您可以找到一些可以使用here的属性。在

这就是你要找的吗?在

您可以使用axis的^{}^{}属性:您可以找到here的完整文档。在

ColorOrder属性是一个由RGB三元组组成的三列矩阵,LineStyleOrder是一个行说明符的单元格数组,或者,也可以是由|分隔的说明符字符串。在

Example usage of ColorOrder and LineStyleOrder properties

此图是使用下面的代码创建的。当然,您也可以使用built-in colormaps中的一个甚至自定义的ColorOrder矩阵。在

figure;

set(gca, 'ColorOrder', hsv(5));
set(gca, 'LineStyleOrder', '-| |:');

hold on;

t = 0:pi/20:2*pi;
for i = 1:15
    plot(t, sin(t-i/5));
end

总之,据我所知,在MATLAB中没有迭代器的概念,特别是在Python的意义上,但是至少这个解决方案应该解决您的问题,而不必显式地调用颜色列表和/或按索引标记。在

相关问题 更多 >