Skip to content

How to make the labels of pie chart are not overlapping?

4 messages · Tammy Ma, Bert Gunter, Ista Zahn +1 more

#
On Fri, Mar 15, 2013 at 12:30 PM, Bert Gunter <gunter.berton at gene.com> wrote:
This is great advice. But it you (or your boss) insists on pie charts,
then you should provide us with a reproducible example that
illustrates your problem.

dat <- read.table(text="Product    predicted_MarketShare
Predicted_MS_Percentage
A                    2.827450e-02                             2.8
B                    4.716403e-06                             0.0
C                    1.741686e-01                             17.4
D                   1.716303e-04                             0.0",
                  header=TRUE)

pie(dat[[2]], labels=dat[[1]])

Does not give overlapping labels, so I don't yet have an example of
the problem you are trying to solve.

Best,
Ista
#
On 03/16/2013 12:58 AM, Tammy Ma wrote:
Hi Tammy,
Obviously you have many more products than are shown above. Let us 
assume that their market share is distributed approximately as negative 
binomial and your "C" value is the maximum. You might have twenty 
products with market shares around:

market_share<-c(0,0,0,0,1,1,1,1,2,2,3,3,4,5,5,6,10,11,15,17)
names(market_share)<-LETTERS[1:20]

If you try to plot this as a pie chart:

pie(market_share)

you do get a bunch of overprinted labels for the four zero values. Pie 
charts with more than four or five sectors are usually not the best way 
to display the distribution of your values, but if you must:

par(mar=c(5,4,4,4))
pie(market_share,labels=c(rep("",4),names(market_share)[5:20]))
par(xpd=TRUE)
text(1.1,0,"A,B,C,D=0")
par(xpd=FALSE)

Good luck with it.

Jim