Кнопка сохранения Matplotlib не работает во встроенном окне Tkinter - PullRequest
2 голосов
/ 19 июня 2019

Я не могу заставить работать кнопку сохранения во встроенном окне. Все остальные кнопки имеют полную функциональность.

Вот фрагмент кода:

pop = Tk()

fig, ax = plt.subplots()
ax.plot(root.x, root.y)
ax.set(xlabel='Wavenumber', ylabel='Intensity', title=os.path.basename(root.filename))
ax.grid()

root.plot_canvas = FigureCanvasTkAgg(fig, master=pop)
root.plot_canvas.draw()

toolbar = NavigationToolbar2Tk(root.plot_canvas, pop)
toolbar.update()
root.plot_canvas.get_tk_widget().pack(side=TOP, fill=Y)

pop.mainloop()

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Это ошибка в matplotlib 3.1.0.

Это будет исправлено в matplotlib 3.1.1, которая, как мы надеемся, появится очень скоро.

Тем временем вы можете вернуться к matplotlib 3.0.3.

0 голосов
/ 19 июня 2019

matplotlib документация соблюдается правильно и кнопка сохранения работает нормально, но, вероятно, вы работаете в ограниченной папке. Если это не так, функция matplotlib.pyplot.savefig сохранит значение:

from tkinter import *
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
import matplotlib.pyplot as plt
import numpy as np

def save():
    plt.savefig('plot.png')

pop = Tk()

fig, ax = plt.subplots()
ax.plot(np.arange(1,10,5), np.arange(1,10,5))

plot_canvas = FigureCanvasTkAgg(fig, master=pop)
plot_canvas.draw()

toolbar = NavigationToolbar2Tk(plot_canvas, pop)
toolbar.update()
plot_canvas.get_tk_widget().pack(side=TOP, fill=Y)

b = Button(pop, text="SAVE", bg="red", fg = 'white', command=save)
b.pack()

pop.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...