I'm doing most of this on a win7 machine. When I installed MPL, I had two small dialogs appear that said something was missing, but I pressed on. MPL seemed to generally work except for the show() problem. When it was to be executed to show the output of plot(x,y), it did just that; however, the shell window hung, and I had to upper right corner x my way out of it--2 to 3 steps. The plot window and program easily went the same way. IDLE is the tool of choice on both machines.

I'm in the process of bringing programs from my XP to the win7 machine, and on the XP machine I decided to start using MPL with a 900 line Py program that I'm revising. I had gotten stuck with the very same problem there. However, last night I realized someone had added a MPL plot to it years ago, and it does not fail on show(). I've put print stmts after show() in the big program, but nothing is printed in either case when I close the plot window. Tried in IDLE and executing from clicking on the py file in its folder.

I brought some of this up on the MPL mailing list, and one respondent said he had tried some of the examples with show(), and they had worked.

I noticed the dialog msgs mentioned above, and thought I made a mistake in not installing numpy first, so tried to figure out a way to do it. Three posts on different forums did not provide an answer. I accidentally found the author of MPL's hidden away in one of MPL files. He said it didn't make a difference and asked me not to use his address. I though the warning msgs might be of interest to him, so wrote to him. He had blocked me. Perhaps I need to file a bug report to get his attention on that.



Anyway, I'm now stalled on the development of the big program. It's possible this is an IDLE problem, but I ran the big program with a click on the file, and the black window showed the same problem. This is all on XP Pro.

I'm going to copy the two code segments here. Maybe someone can see a difference.

=================OLD working code============
     def light_curve( self ):
         result = []
         test = 1
         for tup in self.subimages:
             left,top,subimage = tup
             total = 0
             avg_total = 0
             if (test == 1):
                 box = (left, top, left+128, top+128)
                 region = self.reference_image.crop(box)
                 self.reference_image.paste(subimage, box)
                 test = 2
             else:
                 for x in range(left+43,left+82):
                     for y in range(top+43, top+82):
avg_total = avg_total + self.reference_image.getpixel((x, y)) for x in range(43,82): #take the center 40 X 40 pixel block
                     for y in range(43,82):
                         v = subimage.getpixel((x, y))
                         total = total + v
                 #for x in range(left, left+127):
                 #    for y in range(top, top+127):
# avg_total = avg_total + self.reference_image.getpixel((x, y))
                 #for x in range(0, 127):
                 #    for y in range(0, 127):
                 #        total = total + subimage.getpixel((x, y))
result.append(total - avg_total) #(average - background average) gives pixel intensity above the background)
         plotting_x = range(2, len(result)+2)
         plot(plotting_x, result)
         xlabel('Frame #')
         ylabel('Pixel count above background count')
         title('Light curve for selected subplot')
         show()

===========New Code with show problem
     def get_point_trail_stats(self): # Simple track statistics
         xy = array(self.xya)[:,0:2]  # creates a two column array for x,y
         pt2pt_dist = []
         pt_dist = []
         for k in arange(0,len(xy)-1):
distance = sqrt((xy[k+1,0]-xy[k,0])**2 + (xy[k+1,1]-xy[k,1])**2)
             pt_dist.append(distance)
# wtw print "k ",k, (xy[k,0], xy[k,1]), " distance: ", distance
         # wtwfor k in arange(0, len(xy)-50):
# wtw print "k: %3i dist: %6.2f (x,y) (%4.1f,%4.1f)" % (k, pt_dist[k], xy[k,0], xy[k,1])
         per_tile25 = stats.scoreatpercentile(pt_dist,25.0)
         per_tile50 = stats.scoreatpercentile(pt_dist,50.0)
         per_tile75 = stats.scoreatpercentile(pt_dist,75.0)
         mean       = stats.mean(pt_dist)
         std        = stats.std(pt_dist)
         #sys.exit()
         amin       = min(pt_dist)
         amax       = max(pt_dist)
print " mean: %7.2f std: %7.2f min: %7.2f max: %7.2f" % (mean, std, amin, amax) print " quartiles (25-per: %7.2f, 50-per: %7.2f, 75-per: %7.2f): " % (per_tile25, per_tile50, per_tile75)
         #print "           Extended stats"
         #print "   min: %7.2f max: %7.2f mean: %7.2f std: %7.2f" % \
         #    (min, max, mean, std)
#print " p25: %7.2f p50: %7.2f p75: %7.2f" % (per_tile25, per_tile50, per_tile75) trk_stats = (amin, amax, mean, std, per_tile25, per_tile50, per_tile75)
         fig = figure()
         ax1 = fig.add_subplot(111)
         v = (0, 640, 0, 480)
         print "shapes: ", xy[:,0].shape, xy[:,1].shape
         fig.close()
         ax1.plot(xy[:,0], xy[:,1]) #,100*s, c , picker=True)
         ax1.axis(v)
         #x = (0,1,3,20,20);y=(5,7, 9, 22,90)
         #col = ax1.plot(x,y)
         show()

         print "something for wtw plot"
         print
         return trk_stats
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to