Jae-Joon - Thank you for your suggestion. I wasn't aware I needed the alignments.
However, when I try your sample code in my script, I get a sequence of rendering errors if I use show() or savefig(): Traceback (most recent call last): File "/Library/Python/2.5/site-packages/matplotlib-0.98.5.1-py2.5-macosx-10.5-i386.egg/matplotlib/figure.py", line 772, in draw for a in self.axes: a.draw(renderer) File "/Library/Python/2.5/site-packages/matplotlib-0.98.5.1-py2.5-macosx-10.5-i386.egg/matplotlib/axes.py", line 1601, in draw a.draw(renderer) File "/Library/Python/2.5/site-packages/matplotlib-0.98.5.1-py2.5-macosx-10.5-i386.egg/matplotlib/text.py", line 450, in draw bbox, info = self._get_layout(renderer) File "/Library/Python/2.5/site-packages/matplotlib-0.98.5.1-py2.5-macosx-10.5-i386.egg/matplotlib/text.py", line 246, in _get_layout 'lp', self._fontproperties, ismath=False) File "/Library/Python/2.5/site-packages/matplotlib-0.98.5.1-py2.5-macosx-10.5-i386.egg/matplotlib/backends/backend_macosx.py", line 123, in get_text_width_height_descent return self.gc.get_text_width_height_descent(unicode(s), family, size, weight, style) RuntimeError: ATSUSetAttributes failed My new script is below: #!/usr/bin/env python import matplotlib import numpy as np import matplotlib.cm as cm import matplotlib.mlab as mlab import matplotlib.pyplot as plt import math matplotlib.rcParams['xtick.direction'] = 'out' matplotlib.rcParams['ytick.direction'] = 'out' delta = 0.025 x = np.arange(-3.0, 3.0, delta) y = np.arange(-2.0, 2.0, delta) X, Y = np.meshgrid(x, y) Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) # difference of Gaussians Z = 10.0 * (Z2 - Z1) f=plt.figure(facecolor='g') ax = plt.gca() ax.set_axis_bgcolor('g') CS = plt.contour(X, Y, Z) xt = plt.xticks() yt = plt.yticks() fontsize = 10 fontdict2 = {'fontweight':'light', 'color': 'r', 'fontsize':fontsize} fp = matplotlib.font_manager.FontProperties(fontdict2) labels = plt.clabel(CS, inline=1, fontsize=fontsize,colors='k') for label in labels: ltext = label.get_text() lx,ly = label.get_position() lrot=label.get_rotation() va, ha = label.get_va(), label.get_ha() t = plt.text(lx,ly,ltext, fontproperties=fp, rotation=lrot,va=va, ha=ha) plt.savefig('output.png') Jae-Joon Lee wrote: > I guess you're missing vertical and horizontal alignment. > Also, your font properties were not set correctly. The 4th argument of > the text function is a color. > > > fontdict2 = {'fontweight':'light', > 'color': 'r', > 'fontsize':fontsize} > fp = FontProperties(fontdict2) > > labels = plt.clabel(CS, inline=1, fontsize=fontsize,colors='k') > for label in labels: > ltext = label.get_text() > lx,ly = label.get_position() > lrot=label.get_rotation() > va, ha = label.get_va(), label.get_ha() > t = plt.text(lx,ly,ltext, fontproperties=fp, > rotation=lrot,va=va, ha=ha) > > You may simply use update_from() method. > > Anyhow, I'm not sure if you can put dorpshadow effect this way. > Changing font weight usually changes the overall size of each glyph. > > Regards, > > -JJ > > > On Tue, Jan 6, 2009 at 10:20 AM, Michael Hearne <mhea...@usgs.gov> wrote: > >> Is the list of return values from the clabel() function supposed to >> represent the position and orientation of the contour labels? I have a >> script below where I try to re-draw the contour labels using the Text >> objects in the list returned from clabel(), and they do not line up in >> my output. I'm using Matplotlib version 0.98.5.1, revision 6622. >> >> If this is intentional, is there some way of retrieving the actual >> position/orientation of the contour labels? I'm trying to make a >> drop-shadow effect for those labels, and I need to know where they are >> exactly for my code to work. >> >> Sample script: >> #!/usr/bin/env python >> import matplotlib >> import numpy as np >> import matplotlib.cm as cm >> import matplotlib.mlab as mlab >> import matplotlib.pyplot as plt >> import math >> >> matplotlib.rcParams['xtick.direction'] = 'out' >> matplotlib.rcParams['ytick.direction'] = 'out' >> >> delta = 0.025 >> x = np.arange(-3.0, 3.0, delta) >> y = np.arange(-2.0, 2.0, delta) >> X, Y = np.meshgrid(x, y) >> Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) >> Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) >> # difference of Gaussians >> Z = 10.0 * (Z2 - Z1) >> >> f=plt.figure(facecolor='g') >> ax = plt.gca() >> ax.set_axis_bgcolor('g') >> CS = plt.contour(X, Y, Z) >> xt = plt.xticks() >> yt = plt.yticks() >> >> fontsize = 10 >> fontdict2 = {'fontweight':'light', >> 'color': 'r', >> 'fontsize':fontsize} >> labels = plt.clabel(CS, inline=1, fontsize=fontsize,colors='k') >> for label in labels: >> ltext = label.get_text() >> lrot = label.get_rotation() >> lx,ly = label.get_position() >> plt.text(lx,ly,ltext,fontdict2,rotation=lrot) >> >> plt.savefig('output.png') >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> >> ------------------------------------------------------------------------------ Check out the new SourceForge.net Marketplace. It is the best place to buy or sell services for just about anything Open Source. http://p.sf.net/sfu/Xq1LFB _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users