2010-10-02 6 views
20

J'ai cette belle sphère que j'ai faite dans matplotlib. Comment pourrais-je le mettre dans un widget tkinter frame? 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 menu sous l'affichage? Je n'ai pas besoin de sauvegarder la sortie ou le zoom, donc c'est inutile pour moi.Courir matplotlib dans 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() 

Répondre

20

Jetez un oeil sur les exemples pour intégrer des parcelles dans une interface graphique tk, il devrait être suffisant pour vous aider à démarrer dans la bonne direction.

user_interfaces example code: embedding_in_tk.py

user_interfaces example code: embedding_in_tk2.py

En ce qui concerne la suppression de la barre d'outils, il est un cas de ne pas ajouter lorsque vous intégrez des parcelles dans une interface graphique.

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