簡體   English   中英

餅圖中的圖例顯示不正確

[英]Legend in piechart not appearing correctly

我想將我的餅圖向左移動,因為圖例太近了,因此它在我的圖例(Micro-mammifères)中切字,但我不知道該怎么做。 我也確實有重疊的百分比值,我希望能夠正確讀取它們。 我試圖增加半徑但沒有用,並且使圖例消失了。

slices <- c(62,6,1,0.5,13,1,0.4,14,0.1,2)
pct <- c(62,6,1,0.5,13,1,0.4,14,0.1,2)
lbls <- paste(pct,"%",sep=" ")
lgd <- c("Elan", "Renne","Castor", "Chevreuil", "Lièvre", "Renard", "Sanglier","Porc", "Mustélidés", "Micromammifères")
cols = brewer.pal(n = length(slices), name = 'Set3')

pie(slices,labels = lbls, col=cols)
legend(1.1,0.6,legend=lgd,cex=0.9, bty = "n", fill = cols)

餅圖在基本 R(參見手冊頁?餅圖)中不鼓勵使用,因此它們不包含許多有用的選項。 我們可以通過減小標簽的大小、刪除百分號並更改 plot window 的大小來更接近您想要的。 我只是包括更改的代碼:

pct <- c("62", "6", "1", ".5", "13", "1", ".4", "14", ".1", "2")
dev.new(width=10, height=8)
pie(slices, labels=pct, col=cols, cex=.75)
title(xlab="Percentage of Total", line=0)
legend("topright", legend=lgd, bty="n", fill=cols)

在 plotrix 和 ggplot 中還有一些其他的餅圖實現可能會讓你更接近你想要的。

餅形圖

pie() function 的主要問題是它總是在 plot 區域的中間繪制餅圖。 您可以像@dcarlson 那樣將區域設為矩形,以便在邊緣留出空間,但左側會有一個很大的空白區域。

為避免這種情況,您可以使用layout() function 將 plot 區域分成兩部分,然后將餅圖放在左側。 例如,

dev.new(width=10, height=6)
layout(matrix(1:2, nrow=1), widths = c(1,0.666))
pie(slices,labels = lbls, col=cols)
plot.new()
legend("center",legend=lgd,cex=0.9, bty = "n", fill = cols)

這給出了一個 plot 仍然有太多我的口味的空白,但至少它是平衡的:

截屏

您可以嘗試使用尺寸來改善外觀。 您可能還想調整邊距,例如par(mar = c(0,0,0,0))將所有邊距減少為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM