Re: [Matplotlib-users] Leftmost column of PNG output is transparent

2009-03-25 Thread Kevin Milner
Maybe I'll try the latest SVN version. I'm running the version in the 
ubuntu 8.10 repositories, which appears to be 0.98.3

As for both contourf and pcolor, I was just testing to see that it was 
messed up either way, leaving one commented and one uncommented. Having 
them both uncommented was just a typo, but the problem persists either way.

Thanks,
Kevin

Jae-Joon Lee wrote:
> I couldn't reproduce it (my output has no transparent column). I'm
> running the current svn. I wonder if others can reproduce it.
>
> Kevin,
> what happen if you only do one of the pcolor or the contourf (it is
> not clear why you're calling pcolor as it will be overridden by
> contourf)?
>
> -JJ
>
>
> On Mon, Mar 23, 2009 at 5:10 PM, kmilner  wrote:
>   
>> Hi All,
>>
>> I'm trying to plot evenly grided data to tiles for google maps overlays.
>> Each tile needs to be a 256x256 pixel PNG image, without any borders.
>>
>> The problem that I'm having is that the leftmost column of the resultant PNG
>> image (saved using FigureCanvasAgg.print_figure) is transparent.
>>
>> My real code uses basemap because the output has to be in the mercator
>> projection, but the sample code below is simplified to exclude it. You can
>> view the sample image that is produced at this address:
>> http://earth.usc.edu/ftp/kmilner/trans_test.png
>>
>> Any ideas?
>>
>> Thanks!
>> Kevin
>>
>> #!/usr/bin/env python
>>
>> from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
>> from matplotlib.figure import Figure
>> import numpy
>>
>> dpi = 64
>> pixels = 256
>> fig = Figure(linewidth=0, frameon=False)
>> canvas = FigureCanvas(fig)
>>
>> fig.figurePatch.set_alpha(0.0)
>>
>> ax_bounds = [0, 0, 1, 1]
>>
>> ax = fig.add_axes(ax_bounds, axisbg=(1.0,1.0,0.0,0.0),
>>frameon=False )
>>
>> inches = pixels / dpi
>> fig.set_size_inches(256 / dpi, 256 / dpi)
>>
>> num = 31
>>
>> z = numpy.empty( (num, num) )
>>
>> for x in xrange(num):
>>for y in xrange(num):
>>z[x, y] = x * y
>>
>> x, y = numpy.meshgrid( range(num), range(num) )
>>
>> image = ax.pcolor(x, y, z)
>> image = ax.contourf(x, y, z)
>>
>> canvas.print_figure("/tmp/trans_test.png", dpi=dpi)
>> --
>> View this message in context: 
>> http://www.nabble.com/Leftmost-column-of-PNG-output-is-transparent-tp22669232p22669232.html
>> Sent from the matplotlib - users mailing list archive at Nabble.com.
>>
>>
>> --
>> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
>> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
>> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
>> software that enables intelligent coding and step-through debugging.
>> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
>> ___
>> Matplotlib-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>> 

--
___
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Integrating plots with existing PyGTK application

2008-02-21 Thread Kevin Milner
Hi everyone,

I am a developer on a PyGTK application for Earth Science research and 
education called SEATREE ( http://geosys.usc.edu/projects/seatree/wiki ) 
and we are trying to integrate some pylab plots.

I can successfully create and use a pylab frame/window inside of our GTK 
application using the following sequence (note that all of this is 
called AFTER the application has launched and the GTK main loop has 
started):

-
import math
import pylab as p
import matplotlib
from matplotlib.backends.backend_gtk import FigureCanvasGTK, 
NavigationToolbar   
matplotlib.use('GTK')

p.figure()
//set up the figure
//connect actions using p.connect('signal name', function)
p.show()
-

Then, once I'm done with the plot and it is closed, p.close() is called.

All of that works fine, and I actually like the blocking nature of the 
p.show() method (I know this probably isn't the best way since I already 
have a GTK main loop going). The problem arises when I try to display 
the plot again. If I just call the p.show() method for a 2nd time, it 
does not block execution of my function, and the plot shows up but is 
unresponsive with full CPU utilization. My main GTK window for the 
application is enabled and responsive during this time.

I then tried using the following code to show the window (either both 
times or just the 2nd time around):

-
for manager in Gcf.get_all_fig_managers():
manager.window.show()
-

But I get an error that is very strange, as it references Tkinter even 
though I am using GTK:

-
Traceback (most recent call last):
  File 
"/home/kevin/workspace_seatree/SEATREE/py-drivers/py-hc/flowGUI.py", 
line 379, in editVisc
manager.window.show()
  File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1724, in __getattr__
return getattr(self.tk, attr)
AttributeError: show
-

Finally, I tried just not calling anything after p.frame() the second 
time through (besides doing the signal connecting again), and this time 
the plot window will show up, but signals will not be processed 
(including trying to close the plot with the 'x' on the window frame).

I also tried just embedding a FigureCanvasGTK object displaying the 
figure to my own gtk.Dialog object, which works for displaying the plot, 
but I couldn't figure out how to get the pylab events to be processed 
and connected (I need to modify the plot by clicking on parts of it). If 
I could figure out the even handling, this would actually be the 
preferred method of showing the plot. This is the code for this attempt:

-
self.dialog = gtk.Dialog(title=title, parent=parent, flags= 
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
self.canvas = FigureCanvasGTK(self.figure)
self.dialog.vbox.pack_start(self.canvas)
self.dialog.show_all()
self.dialog.show()
-

Does anyone have any suggestions? Thanks a ton for making it this far 
through my long message!

Kevin Milner

P.S. see full source here: (the pylab stuff is dirty cause it's in 
debugging stages)
See bottom for the p.show() call: 
http://geosys.usc.edu/projects/seatree/browser/py-drivers/py-hc/flowGUI.py
Event processing/plot creation and manipulation: 
http://geosys.usc.edu/projects/seatree/browser/py-drivers/py-hc/manipulate_hc.py

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users