Hello, It's my first post on this forum and I'm very happy to discover a forum dedicated to matplotlib. I 've begun recently a development with matplotlib inside my python (2.7)application. In a first step I've developped a stand alone graphical display and it runs properly. In a second step, I try to manage this graphical display through gtk (because my main application is in python/gtk) : now, most of functionalities run well, but labels on my 3 axes are no more displayed and I don't understand why. Thank you for all suggestions.
Here is the source code with gtk ----------------------------------------------------------------------------------------------------------------- import sys import gtk import numpy as np import matplotlib.pyplot as plt from matplotlib.figure import Figure from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas from matplotlib.backends.backend_gtk import NavigationToolbar2GTK as NavigationToolbar from StringIO import StringIO # StringIO behaves like a file object from mpl_toolkits.mplot3d import Axes3D from matplotlib.colors import colorConverter from matplotlib.widgets import Button class SectorDisplay2__: """ Display view of sectors and volumes """ def __init__(self): win = gtk.Window() win.connect("destroy",self.SectorDisplayClosePanel) win.set_default_size(800,800) vbox = gtk.VBox() win.add(vbox) fig = Figure() canvas = FigureCanvas(fig) # a gtk.DrawingArea ax = Axes3D(fig) #get lines as csv description line = "" line = line+"VOL1;P4120;0;999;-49.68722222222222;-1.52166666666667;\n" line = line+"VOL1;P4121;0;999;-49.68722222222222;-2.20722222222222;\n" line = line+"VOL1;P1421;0;999;-49.23750000000000;-2.20722222222222;\n" line = line+"VOL1;P1422;0;999;-49.23750000000000;-1.52166666666667;\n" line = line+"VOL1;P4120;0;999;-49.68722222222222;-1.52166666666667;\n" lines = StringIO(line) # get the list of point coordinates and level data = np.loadtxt(lines, delimiter=';', usecols = (0,1,2,3,4,5), # 0=volume 1=point 2=lower level 3=upper_level, 4=lat 5=long dtype = np.dtype({'names':['volume','point','lower','upper','lat','long'], 'formats': ['S20','S5','i4','i4','f4','f4']}) ) # Get one particular volume onevolume = data[data['volume']=="VOL1"] ax.plot(onevolume['long'],onevolume['lat'],onevolume['upper']) ax.plot(onevolume['long'],onevolume['lat'],onevolume['lower']) for i in range(len(onevolume)-1): ax.plot([onevolume['long'][i],onevolume['long'][i]], [onevolume['lat'][i],onevolume['lat'][i]], [onevolume['lower'][i],onevolume['upper'][i]]) ax.set_ylabel('Latitude (deg)') ax.set_xlabel('Longitude (deg)') ax.set_zlabel('Level (100xfeet)') ax.set_title('Volumic definition') vbox.pack_start(canvas) toolbar = NavigationToolbar(canvas,win) vbox.pack_start(toolbar,False,False) win.show_all() # Run the Gtk mainloop gtk.main() def SectorDisplayClosePanel(self,caller): gtk.main_quit() if __name__ == '__main__': SectorDisplay2__() ------------------------------------------------------------------------------------- Here is the initial source code without gtk: ------------------------------------------------------------------------------------- import sys import numpy as np import matplotlib.pyplot as plt from matplotlib.figure import Figure from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas from matplotlib.backends.backend_gtk import NavigationToolbar2GTK as NavigationToolbar from StringIO import StringIO # StringIO behaves like a file object from mpl_toolkits.mplot3d import Axes3D from matplotlib.colors import colorConverter from matplotlib.widgets import Button class SectorDisplay2__: """ Display view of sectors and volumes """ def __init__(self): """ @param parentWin: Window which is parent of this window @type parentWin: Widget @param typevol: give the type of volume : volume, sector, non controlled area ... @type typevol: str @param entity_name: entity to display @type entity_name: str @type application: <Application__> @param application: instance of class Application__ @param class_creation: indicates a class creation and not only a call to Class__.__init__ @type class_creation: boolean """ fig = plt.figure() ax = Axes3D(fig) #get lines as csv description line = "" line = line+"VOL1;P4120;0;999;-49.68722222222222;-1.52166666666667;\n" line = line+"VOL1;P4121;0;999;-49.68722222222222;-2.20722222222222;\n" line = line+"VOL1;P1421;0;999;-49.23750000000000;-2.20722222222222;\n" line = line+"VOL1;P1422;0;999;-49.23750000000000;-1.52166666666667;\n" line = line+"VOL1;P4120;0;999;-49.68722222222222;-1.52166666666667;\n" lines = StringIO(line) # get the list of point coordinates and level data = np.loadtxt(lines, delimiter=';', usecols = (0,1,2,3,4,5), # 0=volume 1=point 2=lower level 3=upper_level, 4=lat 5=long dtype = np.dtype({'names':['volume','point','lower','upper','lat','long'], 'formats': ['S20','S5','i4','i4','f4','f4']}) ) # Get one particular volume onevolume = data[data['volume']=="VOL1"] ax.plot(onevolume['long'],onevolume['lat'],onevolume['upper']) ax.plot(onevolume['long'],onevolume['lat'],onevolume['lower']) for i in range(len(onevolume)-1): ax.plot([onevolume['long'][i],onevolume['long'][i]], [onevolume['lat'][i],onevolume['lat'][i]], [onevolume['lower'][i],onevolume['upper'][i]]) ax.set_ylabel('Latitude (deg)') ax.set_xlabel('Longitude (deg)') ax.set_zlabel('Level (100xfeet)') ax.set_title('Volumic definition') plt.show() def SectorDisplayClosePanel(self,caller): plt.close() if __name__ == '__main__': SectorDisplay2__() ------------------------------------------------------------------------------------- ------------------------------------------------------------------------------ Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users