R在堆叠条形图中仅在堆叠百分比值大于5的情况下仅显示标签

内维达(Nevedha Ayyanar)

我有一个数据框

df <- data.frame("QuarterYear" = c("2019 Q1","2019 Q1","2019 Q2","2019 Q2","2019 Q3","2019 Q3","2019 Q3"), "Size" = c("Medium","Small","Large","Medium","Large","Medium","Small"),
                 "percentage" = c(98,2,29,71,13,74,13))

我需要为每个堆栈绘制带有标签的堆积条形图

 plot_ly(df, x = df$QuarterYear,
        y = df$percentage,
        type = 'bar',
        name = df$Size,
        text = paste(df$percentage,"%"),
        textposition = 'top',
        hoverinfo = 'text',
        hovertext = paste('Size: ', df$Size,
                          '<br> % of Total count: ', paste(df$percentage,"%")),
        color = df$Size) %>%
  layout(yaxis = list(title = "% of Count", zeroline = FALSE, 
                      showline = FALSE, ticksuffix = "%"), barmode = 'stack',hoverlabel = list(bgcolor= 'white')) %>%
  layout(legend = list(orientation = "h",
                       xanchor = "center",
                       x = 0.5,
                       y = -0.13))%>%
  add_annotations(text = paste0(df$percentage, "%"),
                  x = df$QuarterYear,
                  y = unlist(tapply(df$percentage, df$QuarterYear, FUN=cumsum))-(df$percentage/2),
                  showarrow = FALSE)

获得的输出是

在此处输入图片说明

但是2%是不可见的,因为堆栈的大小较小以适应该值。仅当值大于5时才有可能显示标签吗?

提前致谢!!

莫哈纳松达兰

对注释文本使用ifelse()函数。

plot_ly(df, x = df$QuarterYear,
        y = df$percentage,
        type = 'bar',
        name = df$Size,
        text = paste(df$percentage,"%"),
        textposition = 'top',
        hoverinfo = 'text',
        hovertext = paste('Size: ', df$Size,
                          '<br> % of Total count: ', paste(df$percentage,"%")),
        color = df$Size) %>%
  layout(yaxis = list(title = "% of Count", zeroline = FALSE, 
                      showline = FALSE, ticksuffix = "%"), barmode = 'stack',hoverlabel = list(bgcolor= 'white')) %>%
  layout(legend = list(orientation = "h",
                       xanchor = "center",
                       x = 0.5,
                       y = -0.13))%>%
  add_annotations(text = ifelse(df$percentage > 2, paste0(df$percentage, "%"), ""),
                  x = df$QuarterYear,
                  y = unlist(tapply(df$percentage, df$QuarterYear, FUN=cumsum))-(df$percentage/2),
                  showarrow = FALSE)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在条形上方的堆叠条形图中添加百分比标签

如何在保持条形高度的堆叠条形图中添加百分比标签(R plotly)

将百分比标签添加到堆叠的条形图中

堆叠条形图中的position_stack和百分比标签的反转

如何在R中将标签作为百分比添加到栅格堆叠的条形图中?

使用DataFrame.plot在堆叠的条形图中显示总计和百分比

在带有双Y轴的堆叠条形图中显示数字和百分比

如何按条形计算堆叠条形图中的百分比?

有没有办法在Quickbase中显示堆叠条形图中的数量和百分比?

PYTHON - 在来自熊猫 matplotlib 的交叉表的堆叠水平条形图中显示 100 的百分比

堆叠的ggplot百分比条形图在闪亮

R堆叠百分比条形图,带有二元因子和标签的百分比

R:ggplot堆叠的条形图,y轴上有计数,但百分比为标签

向堆叠条形图添加百分比标签

将百分比标签添加到堆叠的条形图ggplot2

如何居中堆叠百分比条形图标签居中

在R中作图:如何在时间序列数据中绘制堆叠的条形图以显示百分比构成?

如何计算和绘制堆叠条形图的百分比标签以及条形图的总数?

如何创建频率堆叠的条形图,但是条形图上的百分比标签和y轴上的频率在R中?

强制堆叠条形图中的条/行(ggplot 显示百分比,零小数位)具有相同的长度?

通过计算 R 中两列值之间的百分比值,在条形图标签上添加百分比符号标签

百分比标签未显示在条形图上

用 R ggplot2 中的百分比从头开始分类变量的堆叠条形图

使用绝对值和百分比值 + 标签绘制分组条形图

如何创建以百分比计算的数字的堆叠条形图?

具有 50 多个创建的虚拟变量的堆叠条形图(百分比)?

条形图 - 堆叠的 ggplot 百分比条形图起始值不是 0%

ChartJS:数据标签:在饼图中显示百分比值

在饼图中显示百分比值