For pie charts, autopct lets a format string with the pie's value be
printed on the chart. The default fraction of the radius that the text is
printed at is 0.6; I wanted the text farther out at 0.85.
This small patch (against matplotlib 0.87.4) allows one to customize that
radius by a new keyword argument, pctradius. The old behavior is still
the default.
It works with the pylab interface because pylab.pie passes kwargs through.
I would love it if this were accepted into the main tarball; I hereby
place this patch into the public domain, so there are no copyright
restrictions on incorporating it into the matplotlib distribution.
Comments/questions welcome. I'm subscribed to matplotlib-devel.
-- Asheesh.
--
It is easy to find fault, if one has that disposition. There was once a man
who, not being able to find any other fault with his coal, complained that
there were too many prehistoric toads in it.
-- Mark Twain, "Pudd'nhead Wilson's Calendar"
diff -urN matplotlib-0.87.4/lib/matplotlib/axes.py
matplotlib-0.87.4.new/lib/matplotlib/axes.py
--- matplotlib-0.87.4/lib/matplotlib/axes.py 2006-06-24 00:37:48.000000000
-0700
+++ matplotlib-0.87.4.new/lib/matplotlib/axes.py 2006-07-18
16:54:15.000000000 -0700
@@ -2638,12 +2638,13 @@
def pie(self, x, explode=None, labels=None,
colors=None,
autopct=None,
+ pctdistance=0.6,
shadow=False
):
"""
PIE(x, explode=None, labels=None,
colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'),
- autopct=None, shadow=False)
+ autopct=None, pctdistance=0.6, shadow=False)
Make a pie chart of array x. The fractional area of each wedge is
given by x/sum(x). If sum(x)<=1, then the values of x give the
@@ -2662,6 +2663,10 @@
the wedge. If it is a format string, the label will be fmt%pct.
If it is a function, it will be called
+ - pctdistance is the ratio between the center of each pie slice
+ and the start of the text generated by autopct. Ignored if autopct
+ is None; default is 0.6.
+
- shadow, if True, will draw a shadow beneath the pie.
The pie chart will probably look best if the figure and axes are
@@ -2736,8 +2741,8 @@
texts.append(t)
if autopct is not None:
- xt = x + 0.6*radius*math.cos(thetam)
- yt = y + 0.6*radius*math.sin(thetam)
+ xt = x + pctdistance*radius*math.cos(thetam)
+ yt = y + pctdistance*radius*math.sin(thetam)
if is_string_like(autopct):
s = autopct%(100.*frac)
elif callable(autopct):
Binary files matplotlib-0.87.4/lib/matplotlib/axes.pyc and
matplotlib-0.87.4.new/lib/matplotlib/axes.pyc differ
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel