我正在尝试将MATLAB代码转换为Python,并且有两行具体可以解决我的问题。
h = findobj('Type', 'Figure');
cur_fig = get(0, 'CurrentFigure');
如何将其转换为python?我尝试使用plt.figure()
和plt.gcf()
,但稍后在脚本中,我需要h
作为列表来使用MATLAB中的set
函数。
为了更好地了解我在做什么,总的MATLAB代码如下。
h = findobj('Type','figure');
cur_fig = get(0,'CurrentFigure');
warning off
for i = 1:length(h)
set(0,'CurrentFigure',h(i));
cur_ax = get(h(i),'CurrentAxes'); % gets current axis handle for given figure
hidn_axis=axes('Position',[0 0 1 1], 'Visible','off','Units','normalized','Tag','Stampit');
dh(i,1) = text(.905,0.01,plotID);
set(dh(i,1),'FontSize',[12],'HorizontalAlignment','Right');
set(h(i),'CurrentAxes',cur_ax); % Sets current axis back to its previous state
end
end
set(0,'CurrentFigure',cur_fig);
pause(.001)
warning on
return;
必要的代码如下:
h = findobj('Type','figure');
cur_fig = get(0,'CurrentFigure');
for i = 1:length(h)
set(0,'CurrentFigure',h(i));
cur_ax = get(h(i),'CurrentAxes'); % gets current axis handle for given figure
我尝试执行以下操作:
h = plt.figure()
cur_fig = plt.gcf()
for i = range(1,len(h)+1):
plt.set(0,'CurrentFigure',h[i]);
但是,我收到一条错误消息,说
TypeError:类型对象'图'没有len()
答案 0 :(得分:0)
对于任何想知道的人,我发现这样做的最好方法是使用enumerate
,如下所示:
for i, figure in enumerate(figures):
figure.savefig('figure%d.png' % i)