PolyCollection and replotting

I am facing problems for plotting figures using polycollection. The
code below should do:

1- set two triangles: one with vertices at [0,0 0,1 1,0] and the
other at [1,0 0,1 1,1]
2- give two random values to them
3- add these polygons to polycollection and set their values
4- plot the triangles edges only with triplot and save the eps
4.5- plot again with triplot and save the eps (I will explain why I am
doing this)
5- plot the image with the values (using add_collection) and save as eps
6- set two new random values to these triangles (this step is not
needed to reproduce the error)
7- plot again the image (using add_collection) and save as eps

Steps 1 to 6 seem to be ok. The problem is that on step 7, the
triangles are displaced in x and y directions. The graph is shown
correctly on screen, however this displacement appears on the output
file. This displacement does not appears when I plot twice the mesh
with triplot. Only when I plot using add_collection.

Thanks.

Fernando.

my settings are:

matplotlib version: 1.0.1
matplotlib obtained from: deb
http://ppa.launchpad.net/valavanisalex/matplotlib/ubuntu natty main
system: Linux kalman 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28
15:07:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
no customizations on matplotlibrc

running python with --verbose-helpful option returns

$HOME=/home/fernando
CONFIGDIR=/home/fernando/.matplotlib
matplotlib data path /usr/share/matplotlib/mpl-data
loaded rc file /etc/matplotlibrc
matplotlib version 1.0.1
verbose.level helpful
interactive is False
units is False
platform is linux2
Using fontManager instance from /home/fernando/.matplotlib/fontList.cache
backend TkAgg version 8.5
findfont: Matching
:family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium
to DejaVu Sans (/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf)
with score of 0.100000

···

#-------------------------------
# CODE - CODE - CODE
#-------------------------------

# -*- coding: utf-8 -*-

import os
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.tri as tri
from matplotlib.collections import PolyCollection
import numpy as np

class triangles_mesh():
    def __init__(self,coords,topology,colormap=cm.gray):
        values=np.random.rand(topology.shape[0])
        self.triangles=self.build_triangles(coords,topology,values,colormap)

    def build_triangles(self,coords,topology,image_rho,map_colors=cm.jet):
        (n_elem,n_nodes_local)=topology.shape
        lista_tri=[]
        colors=[]
        values_rho=[]
        for j in range(0,n_elem):
            verts = [(coords[i,0], coords[i,1]) for i in topology[j,:]]
            lista_tri.append(verts)
            values_rho.append(image_rho[j])

        norma = cm.colors.Normalize(vmin=0, vmax=3)

        poligonos = PolyCollection(lista_tri,lw=0.4,cmap=map_colors,norm=norma)
        poligonos.set_array(np.array(values_rho))
        return poligonos

class mesh_2D():
    def __init__(self):
        self.topology=np.array([[0,1,2],[1,3,2]])
        self.coords=np.array([[0,0],[1,0],[0,1],[1,1]])
        self.roi=np.array([1,2])
        self.elem=triangles_mesh(self.coords,self.topology)

    def plot_mesh(self,file_name=None,flag_show_image=1):
        fig=plt.figure()
        my_axis=fig.add_subplot(111,aspect='equal')
        my_axis.triplot(self.coords[:,0],self.coords[:,1],
self.topology,color=[0, 0,0 ],lw=0.4)

        plt.yticks([])
        plt.xticks([])
        my_axis.axis('off')
        x_max,y_max=self.coords.max(0)
        x_min,y_min=self.coords.min(0)
        my_axis.axis([x_min, x_max, y_min, y_max])
        plt.draw()
        if file_name!=None:
            plt.savefig(file_name,transparent=True,format="eps",bbox_inches="tight")
        if flag_show_image==1:
            plt.show()
        plt.close()

    def plot_values(self,file_name=None,flag_show_image=1):

        fig=plt.figure()
        my_axis=fig.add_subplot(111,aspect='equal')
        my_axis.add_collection(self.elem.triangles)
        #plt.yticks([])
        #plt.xticks([])
        #my_axis.axis('off')
        x_max,y_max=self.coords.max(0)
        x_min,y_min=self.coords.min(0)
        my_axis.axis([x_min, x_max, y_min, y_max])
        fig.canvas.draw()
        if file_name!=None:
            plt.savefig(file_name,transparent=True,format="eps",bbox_inches="tight")
        if flag_show_image==1:
            plt.show()

        plt.close()

malha_pd=mesh_2D()

malha_pd.plot_mesh("mesh.eps",flag_show_image=0)
malha_pd.plot_mesh("mesh1.eps",flag_show_image=0)
malha_pd.plot_values("values.eps",flag_show_image=1)

# set new values ()
new_values=np.random.rand(malha_pd.topology.shape[0])
malha_pd.elem.triangles.set_array(np.array(new_values))

#plot again: here the problem appears
malha_pd.plot_values("values1.eps",flag_show_image=1)

#--------------------------
# END CODE - END CODE
#--------------------------