首页 > 解决方案 > r-plotly:用值代替百分比的饼图

问题描述

我需要用 R 绘制一个饼图,但我不想显示百分比,而是希望将原始计数覆盖在饼图部分(即 300、250、110、190)上。

下面的代码制作了饼图,但带有百分比。

WhatIHave <- c("Money" = 300,
            "Dinosaurs" = 250,
            "Aether" = 110,
            "Discussions" = 190)
data <- data.frame("Category" = names(WhatIHave), WhatIHave)

p <- plot_ly(data, labels = ~Category, values = ~WhatIHave, type = 'pie') %>%
    layout(title = 'Lovely Pie',
           xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
           yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
p

我不敢相信以前没有人问过这个问题,但我真的无法在以前的问题或情节文档中找到它。如果这是一个重复的问题,我们深表歉意。

标签: rplotly

解决方案


您可以创建一个称为vals在饼图中使用的字符向量

vals <- paste(data$WhatIHave, sep = "")

p <- plot_ly(data, labels = ~Category, values = ~WhatIHave, type = 'pie', textinfo = "text", text = vals) %>%
    layout(title = 'Lovely Pie',
           xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
           yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
p

编辑

如果要同时包含值和百分比,可以执行以下操作:

textinfo = "text + values"

推荐阅读