web-dev-qa-db-fra.com

Exécuter matplotlib dans tkinter

J'ai cette belle sphère que j'ai faite en matplotlib. Comment pourrais-je le mettre dans un widget de cadre tkinter? Ce serait bien de pouvoir l'intégrer dans une interface graphique tkinter existante. Est-il également possible de se débarrasser de la barre de menus sous l'écran? Je n'ai pas besoin de sauvegarder la sortie ou le zoom, donc ça ne me sert à rien.

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()
23
rectangletangle

Jetez un œil aux exemples d'intégration de tracés dans une interface graphique tk, cela devrait suffire pour vous aider à démarrer dans la bonne direction.

code d'exemple user_interfaces: embedding_in_tk.py

code d'exemple user_interfaces: embedding_in_tk2.py

Quant à la suppression de la barre d'outils, il s'agit de ne pas l'ajouter lorsque vous intégrez des tracés dans une interface graphique.

Si vous utilisez matplotlib.pyplot, la barre d'outils sera créée automatiquement pour chaque figure. Si vous écrivez votre propre code d'interface utilisateur, vous pouvez ajouter la barre d'outils en tant que widget.

22
volting