Что использовать вместо NavigationToolbar2TkAgg? - PullRequest
0 голосов
/ 14 мая 2018

Когда я запускаю следующий скрипт:

import tkinter as tk
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.figure
import matplotlib.backends.backend_tkagg
import numpy as np

def on_key_event(event, canvas, toolbar):
    matplotlib.backend_bases.key_press_handler(event, canvas, toolbar)

matplotlib.use('TkAgg')
root = tk.Tk()
root.wm_title('Test window')
fig = matplotlib.figure.Figure(figsize=(9.333, 7), dpi=100)
a = fig.add_subplot(111)
axes = fig.gca()
x = np.linspace(0, 2*np.pi, 100)
axes.plot(x, np.sin(x), marker='.')
axes.set_title('sin(x)')
axes.grid()
canvas = matplotlib.backends.backend_tkagg.FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(fill=tk.X, expand=1)
canvas.mpl_connect(
    'key_press_event',
    lambda event: on_key_event(event, canvas, toolbar)
)
toolbar = matplotlib.backends.backend_tkagg.NavigationToolbar2TkAgg(
    canvas, root
)
toolbar.update()
root.bind('<Control-w>', lambda event: root.destroy())
tk.mainloop()

Я получаю предупреждение:

MatplotlibDeprecationWarning: The NavigationToolbar2TkAgg class was
deprecated in version 2.2.

Почему NavigationToolbar2TkAg устарел и что мне вместо этого использовать?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Что использовать вместо?

Matplotlib теперь хочет, чтобы вы использовали

NavigationToolbar2Tk

вместо NavigationToolbar2TkAgg.

Почему это устарело?

Панель инструментов навигации не зависит от средства визуализации. Например. и рендер Agg, и рендер cairo могут использовать одну и ту же панель навигации. Следовательно, имеет смысл предоставлять его под именем, в котором нет имени средства визуализации («Agg»).

0 голосов
/ 14 мая 2018

Я полагаю, это означает, что обновление было прекращено, поэтому может быть нестабильным.Я использую его в моем текущем проекте, ошибка всегда отображается, но панель инструментов работает нормально.

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