我正在关注这个答案,通过选择不同的图形后端将绘图窗口置于前面:
Tools > Preferences > Ipython > Graphis > backend
选项为
Inline
、Automatic
、Qt5
和 TKinter
。 我不想要 Inline
,而且我更喜欢比 Automatic
更明确的控制。 Qt5
和 TKinter
都会在首次创建绘图窗口(即完成初始绘图时)将绘图窗口拉到前面。 这是我用于创建绘图的测试代码,改编自here:
from sklearn import datasets
import matplotlib.pyplot as plt
digits = datasets.load_digits()
data = digits.data
from sklearn.manifold import TSNE
projection = TSNE().fit_transform(data)
plot_kwds = {'alpha' : 0.5, 's' : 80, 'linewidths':1,
'edgecolors':"Blue", 'facecolors':"None"}
plt.scatter(*projection.T, **plot_kwds)
问题是,如果我重新发出
plt.scatter()
命令(例如,使用不同的 plot_kwds
选项),绘图窗口不会 not 被拉到前面。 我正在经历一个快速的重新绘图周期,因此使用鼠标将绘图窗口放在前面效率不高。
是否有命令(或其他方式)将绘图窗口置于前面?
基于此页面,我尝试了以下操作。
作品: 对于
Tk
,给出了以下内容。 我选择了TKinter
后端
cfm = plt.get_current_fig_manager()
cfm.window.attributes('-topmost', True)
cfm.window.attributes('-topmost', False)
不起作用:对于
Qt
,给出了以下内容。 我选择了Qt5
后端,但什么也没发生:
cfm = plt.get_current_fig_manager()
cfm.window.activateWindow()
cfm.window.raise_()
对于两者,我在重新绘图并尝试提高绘图窗口之前使用新后端重新启动了所有内核。