我想在 R 中创建一个双层饼图/圆环图

I want to create a double layered pie / donut chart in R

我正在尝试制作一个双层馅饼,这是我的数据:

winner            <- c("White"   , "draw"    , "Black")
lowrated_scotch1  <- c(0.56617647, 0.04411765, 0.38970588) #winrate for Whites,Draws,Blacks in chess
highrated_scotch1 <- c(0.50000000, 0.03676471, 0.46323529)

为了提供更多背景信息,我试图从我已经收集到的数据中可视化 whites/draws/blacks 玩家在苏格兰威士忌开局的 whites/draws/blacks 之间的胜率差异。

这就是我的想法:(图片取自google图片)

layered pie chart example.

这是我的代码:

multi_layer_scotch<-data.frame(winner = c("White","draw","Black"),
                               Y = c(highrated_scotch),
                               X = c(lowrated_scotch))


ggplot(multi_layer_scotch, aes(x = X, y = Y, fill = winner))+
  geom_bar(stat = "identity")+
  scale_fill_manual(values = c("#769656","#baca44","#eeeed2"))+
  coord_polar(theta="y")+
  theme_void()

这就是我得到的输出:

my marvelous not complete graph

如您所见,该图并未按照我想要的方式分层。我情节中的 3 层应该组装在一层(代表低评级玩家)与另一层(代表高评级玩家)堆叠在一起。

我尝试按照post中给出的解决方案,但我自己做不到,我觉得它有点不完整:Multi-level Pie Chart in R

如果你能帮我解决这个问题,我会很高兴!提前致谢

你的意思是这样的吗:

df1 <- melt(multi_layer_scotch)
ggplot(df1, aes(x = variable, y = value, fill = winner))+
  geom_bar(stat = "identity")+
  coord_polar(theta="y")