用渐变替换饼图颜色

Replace pie chart color with gradient

我有这个饼图

pie(c(1,2,1),col=c("black","white","gray"))

我想保持原来的白色和黑色,但想用黑到白的渐变改变灰色,黑色区域旁边的区域开始是黑色,然后逐渐变成灰色,然后进一步逐渐变成白色,直到到达白色区域。所以灰色会被这样的东西代替:

有什么想法可以做到吗?如有任何建议,我们将不胜感激。

您可以使用 ggplot2 包。

首先,重新排列您的数据:

x <- c(1,2,1)
labels <- c(1,2,3)
df <- data.frame(x = unlist(mapply(x = x, lab = labels, function(x, lab) rep(lab, times = x))))

然后,这是绘图的代码

pie <- ggplot(df, aes(x = factor(1), fill = factor(x)))
pie <- pie + geom_bar(width = 1)
pie <- pie + coord_polar(theta = "y") 
pie <- pie + xlab("") + ylab("")
pie + scale_fill_grey()

您可以将一个部分细分为多个部分,并根据比例为每个部分应用一种颜色。需要画外圈线,饼图调用中去掉了。

# Number of intervals to subdivide - increase for finer detail
n <- 41 
# Generate colours
cols <- colorRampPalette(c("white", "black"))(n) 

# Plot
# lty=0 removes the section lines, which also removes outer border
pie(c(1,2, rep(1/n, n)), col=c("black","white", cols) , lty=0,
                                    labels=c(1,2, rep("", n/2), 3))

# Add in outer circle back in
# radius=0.8 used as this is the pie default
plotrix::draw.circle( 0,0, 0.8)

给出