2024-10-03 21:32:57 发布
网友
我需要为同一轴上的一系列绘图指定颜色和标记。在Python中,我只需为每一个创建一个迭代器,然后使用next()将它们按顺序逐个取出。我在MATLAB中找不到等价的;我找到的所有示例都涉及按索引显式调用包含颜色和标记的列表,但这排除了在不使用匹配迭代器的循环中使用它们。有没有更合适的替代物来代替迭代器的概念?在
next()
或者,在MATLAB中有没有更合适的方法来实现这一点?在
可以在plot命令中定义打印的外观(如颜色和标记)。E、 g.plot(1:5,'-go')将生成一个带有o制造商的绿色绘图。(Info)
plot(1:5,'-go')
o
或者,您确实可以在轴上迭代绘图。如果在一个命令中执行所有绘图,例如
h = plot(1:5,[1:5;2:2:10]);
那么h将是图表线对象的向量,然后可以使用
h
并设置如下属性:
h(i).LineWidth = 2; h(i).Marker = '*';
或者在2014年之前的MATLAB版本中:
set(h(i),'LineWidth',2) set(h(i),'Marker','*')
如果在单独的命令中绘制绘图,则可以手动收集向量中返回的图表线对象,然后执行相同的操作(当然也可以直接修改它们)。您可以找到一些可以使用here的属性。在
这就是你要找的吗?在
您可以使用axis的^{}和^{}属性:您可以找到here的完整文档。在
ColorOrder属性是一个由RGB三元组组成的三列矩阵,LineStyleOrder是一个行说明符的单元格数组,或者,也可以是由|分隔的说明符字符串。在
ColorOrder
LineStyleOrder
|
此图是使用下面的代码创建的。当然,您也可以使用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的意义上,但是至少这个解决方案应该解决您的问题,而不必显式地调用颜色列表和/或按索引标记。在
可以在plot命令中定义打印的外观(如颜色和标记)。E、 g.
plot(1:5,'-go')
将生成一个带有o
制造商的绿色绘图。(Info)或者,您确实可以在轴上迭代绘图。如果在一个命令中执行所有绘图,例如
那么
^{pr2}$h
将是图表线对象的向量,然后可以使用并设置如下属性:
或者在2014年之前的MATLAB版本中:
如果在单独的命令中绘制绘图,则可以手动收集向量中返回的图表线对象,然后执行相同的操作(当然也可以直接修改它们)。您可以找到一些可以使用here的属性。在
这就是你要找的吗?在
您可以使用axis的^{} 和^{} 属性:您可以找到here的完整文档。在
ColorOrder
属性是一个由RGB三元组组成的三列矩阵,LineStyleOrder
是一个行说明符的单元格数组,或者,也可以是由|
分隔的说明符字符串。在此图是使用下面的代码创建的。当然,您也可以使用built-in colormaps中的一个甚至自定义的
ColorOrder
矩阵。在总之,据我所知,在MATLAB中没有迭代器的概念,特别是在Python的意义上,但是至少这个解决方案应该解决您的问题,而不必显式地调用颜色列表和/或按索引标记。在
相关问题 更多 >
编程相关推荐