user5543269
user5543269

Reputation: 137

How can I make legend next to my piechart in R?

I have made a piechart in R with the next code:

#make slices
slices <- c(19, 26, 55)

# Define some colors 
colors <- c("yellow2","olivedrab3","orangered3")

# Calculate the percentage for each day, rounded to one decimal place
slices_labels <- round(slices/sum(slices) * 100, 1)

# Concatenate a '%' char after each value
slices_labels <- paste(slices_labels, "%", sep="")

# Create a pie chart with defined heading and custom colors and labels
pie(slices, main="Sum", col=colors, labels=slices_labels, cex=0.8)

# Create a legend at the right   
legend("topright", c("DH","UT","AM"), cex=0.7, fill=colors)

But I want the legend next to my piechart. I have also tried the following code: legend("centreright", c("DH","UT","AM"), cex=0.7, fill=colors). But this does not give me a legend next to my pie chart.

Which code do I have to use to make a legend next to my pie chart in the middle?

Upvotes: 5

Views: 23028

Answers (1)

thothal
thothal

Reputation: 20329

You can play with the x and y argument from legend (cf ?legend):

legend(.9, .1, c("DH","UT","AM"), cex = 0.7, fill = colors)

However, a pie chart may not be the best way to represent your data, because our eye is not very good in assessing angles. The only usecase where a pie chart seems reasonable to me is when comparing 2 categories, because due to watches we can assess these proportions rather easily.

enter image description here

Upvotes: 6

Related Questions