Running matplotlib in tkinter


Question

I have this beautiful sphere I made in matplotlib. How would I go about putting it in a tkinter frame widget? It'd be nice to be able to integrate it into an existing tkinter GUI. Also is it possible to rid of the menu bar below the display? I have no need to save the output or zoom, so it's useless to me.

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
23
10/2/2010 11:16:15 AM

Accepted Answer

Have a look at the examples for embedding plots in a tk GUI, it should be enough to get you started in the right direction.

user_interfaces example code: embedding_in_tk.py

user_interfaces example code: embedding_in_tk2.py

As for removing the toolbar, it's a case of not adding it when you are embedding plots in a GUI.

If you are using matplotlib.pyplot the toolbar will be created automatically for every figure. If you are writing your own user interface code, you can add the toolbar as a widget.

22
10/3/2010 7:16:59 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon