如何更改多个 freqz 图的颜色?
How to change the color of multiple freqz plots?
我在 MATLAB 中使用 "hold" 和 "freqz" 在同一图上绘制多个频率响应。有什么方法可以调整每个图的颜色,以便我可以识别哪个图是哪个图?现在看起来一团糟。
Freqz 似乎不像 "plot" 那样支持更改绘图的颜色。
确实有点棘手,因为freqz
没有提供句柄。
b = fir1(80,0.5,kaiser(81,8));
freqz(b,1); hold on
c = fir1(80,0.9,kaiser(81,8));
freqz(c,1); hold on
但您可以使用 findall
:
获取它们
lines = findall(gcf,'type','line');
然后照常给线条上色:
lines(1).Color = 'red'
lines(2).Color = 'green'
lines(3).Color = 'red'
lines(4).Color = 'green'
或 2014b 之前的 Matlab 版本:
set(lines(1),'Color','red')
set(lines(2),'Color','green')
set(lines(3),'Color','red')
set(lines(4),'Color','green')
它适用于所有LineSpec
properties。
我在 MATLAB 中使用 "hold" 和 "freqz" 在同一图上绘制多个频率响应。有什么方法可以调整每个图的颜色,以便我可以识别哪个图是哪个图?现在看起来一团糟。
Freqz 似乎不像 "plot" 那样支持更改绘图的颜色。
确实有点棘手,因为freqz
没有提供句柄。
b = fir1(80,0.5,kaiser(81,8));
freqz(b,1); hold on
c = fir1(80,0.9,kaiser(81,8));
freqz(c,1); hold on
但您可以使用 findall
:
lines = findall(gcf,'type','line');
然后照常给线条上色:
lines(1).Color = 'red'
lines(2).Color = 'green'
lines(3).Color = 'red'
lines(4).Color = 'green'
或 2014b 之前的 Matlab 版本:
set(lines(1),'Color','red')
set(lines(2),'Color','green')
set(lines(3),'Color','red')
set(lines(4),'Color','green')
它适用于所有LineSpec
properties。