首页 > 解决方案 > 在 plotly 饼图中四舍五入百分比

问题描述

label=c("<25%","25 - 50%",">75%")
values=c(4,2,3)
df=data.frame(label,values)
plot_ly(df, labels = ~label, values = ~values,text=values,textposition="auto", type = 'pie') %>%layout(title = 'Percentage Effort time',showlegend=T,
     xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
     yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

当我运行这段代码时,我得到一个带有百分比和数字的饼图。如何获得四舍五入为整数而不是小数点的百分比?

饼形图

标签: r

解决方案


您可以使用textinfo='text'隐藏百分比值并提供自定义格式的标签text

    text = ~paste(round((values / sum(values))*100, 0)),
    textinfo='text',

完整示例:

library(magrittr)
library(plotly)

label=c("<25%","25 - 50%",">75%")
values=c(4,2,3)
df=data.frame(label,values)
plot_ly(df, 
        labels = ~label, 
        values = ~values,
        text = ~paste(round((values / sum(values))*100, 0)),
        #textinfo='none',
        #textinfo='label+value+percent',
        textinfo='text',
        textposition="auto", type = 'pie') %>% layout(title = 'Percentage Effort time', showlegend=T,
         xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
         yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE)
        )

推荐阅读