On Sun, Aug 19, 2012 at 3:41 PM, Peter Combs <pcombs+...@gmail.com> wrote: > It seems like draw()ing the text object will reset the size of the BBox... > Any idea how to fix this? At the moment, I'm experimenting with continually > drawing, polling the get_width() method, and when it's too small, adding in > spaces around the text field, but that seems both not to work reliably, and > be an incredibly boneheaded way to go about it. > > I'm using matplotlib v. 1.1.0 if that makes a difference. > > > --------------\ > | text > > --------------/ > not > ------\ > | text > > ------/
A recommended way of doing this is to make a custom BoxStyle, from matplotlib.patches import BoxStyle class MyRArrow(BoxStyle.RArrow): def transmute(self, x0, y0, width, height, mutation_size): # mutation_size is a fontsize in pixel scale. total_width = mutation_size*10 dw = (total_width-width)*.5 p = BoxStyle.RArrow.transmute(self, x0-dw, y0, total_width, height, mutation_size) return p ax = subplot(111) txtobj = ax.text(0.5, 0.5, 'text', ha="center", bbox=dict(boxstyle=MyRArrow())) txtobj = ax.text(0.5, 0.3, 'long text', ha="center", bbox=dict(boxstyle=MyRArrow())) However, BoxStyle does not know of the axes/figure/renderer, i.e., you cannot make its width to some fraction of figure width, for example. If this is what you want, you may need to derive from FancyBboxPatch as Daniel Hyams suggested. Regards, -JJ ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users