Запуск матплотлиба в ткинтер - PullRequest
23 голосов
/ 02 октября 2010

У меня есть эта прекрасная сфера, которую я сделал в matplotlib. Как мне поместить его в виджет кадра tkinter? Было бы неплохо иметь возможность интегрировать его в существующий графический интерфейс tkinter. Также возможно ли избавиться от строки меню под дисплеем? Мне не нужно сохранять вывод или масштабирование, так что для меня это бесполезно.

from mpl_toolkits.mplot3d import  axes3d,Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

fig = plt.figure()
ax = Axes3D(fig) #<-- Note the difference from your original code..

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

ax.plot_surface(x, y, z,  rstride=4, cstride=4, color='lightgreen',linewidth=0)
#,antialiased=False
#cmap=cm.jet
plt.show()

1 Ответ

22 голосов
/ 03 октября 2010

Посмотрите примеры для встраивания графиков в графический интерфейс tk, этого должно быть достаточно, чтобы вы начали в правильном направлении.

пример кода user_interfaces: embedding_in_tk.py

пример кода user_interfaces: embedding_in_tk2.py

Что касается удаления панели инструментов, то это случай, когда вы не добавляете ее при встраивании графиков в графический интерфейс.

Если вы используете matplotlib.pyplot, панель инструментов будет создана автоматически за каждую фигуру. Если ты пишешь свой собственный код пользовательского интерфейса, вы можете добавить панель инструментов в качестве виджета.

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