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

Jim Lemon jim at bitwrit.com.au
Fri Mar 15 23:01:17 CET 2013


On 03/16/2013 12:58 AM, Tammy Ma wrote:
> I have the following dataframe:
>
> 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
> .......
>
> Because there are so many products, and most of predicted Market share is around 0%.
> When I make pie chart, the labels of those product with 0% market share are overlapping.
> How do I make the labels are not overlapping?
>
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



More information about the R-help mailing list