1
我有一個單獨的plot線程,帶有matplotlib和多進程。現在,如果我交互放大窗口,autoscale_view()不再起作用(使用autoscale()修復)。但工具箱中的「home」按鈕仍然不起作用:它似乎稱爲autoscale_view(),並不顯示更新的視圖,而是顯示舊視圖(放大時的點)。示例代碼:用Qt4Agg後端重置Matplotlib中的工具欄歷史
import matplotlib
matplotlib.use("qt4agg")
from matplotlib import pyplot as plt
import multiprocessing
def reset_view():
plt.get
xdata = []
ydata = []
temp = 0
test_ax = plt.gca()
test_line, = plt.plot(xdata, ydata)
plt.show(block=False)
for i in range(10):
temp = temp+1
xdata.append(temp)
ydata.append(temp)
test_line.set_data(xdata, ydata)
test_ax.relim()
test_ax.autoscale(tight= False)
plt.show(block=False)
plt.pause(2)
plot_thread = multiprocessing.Process(target = reset_view, args =())
reset_view()
if __name__ == '__main__':
plot_thread.start()
嘗試在繪圖期間放大,然後按主頁按鈕。有沒有辦法讓主頁按鈕使用autoscale()而不是autoscale_view()或重置&更新工具欄歷史記錄,以便它不會跳回到舊視圖?
P.S:「主頁」按鈕上=重置原始視圖