Hi,
In Spyder v1.x, this was indeed possible: Matplotlib was patched for
the figures to be dockable. In these old releases, Spyder's main
console (called the 'internal console' in v2.x) was running in the
same process as Spyder's main window. As it was running in the same
thread too (otherwise *no* GUI objects -like Matplotlib figures for
example- could have been created within this console), a simple
infinite loop was enough to crash Spyder.
This lack of safety was not acceptable, that's why I switched from an
internal console design (Spyder and its console are running in the
same thread/process) to an external console design (Spyder and its
console are running in two separate processes). This major change of
design was introduced progressively (since v1.0 actually) with the
'External console' being available together with the 'Console' in
Spyder v1.x. Now the v1.x's Console has been renamed to 'Internal
console' and is hidden by default (main purpose: internal debugging)
and the v1.x's external console has been renamed to 'Console' and is
the main console in which as many Python/IPython interpreters and
terminals (Windows-only) may be opened.
So, in Spyder v2.x, Matplotlib figures are no longer dockable because
they are created in another process so they absolutely do not relate
with Spyder's main window. That is the only feature that was
sacrificed when switching from the single process design to the two-
process design.
Technically, this would be possible but it would require a lot of
programming to patch Matplotlib so that it could be called remotely:
figures would be created in Spyder main window's process directly from
the remote process (Console) - this would require to send data over
the process-to-process connection (a BSD socket) which may be slow
down things a little bit when dealing with very large amount of data
(> hundreds of MB).
Cheers,
Pierre