我想在 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")
我正在尝试制作一个双层馅饼,这是我的数据:
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")