如何在ggplot2中的群集条形图上对齐文本?

内夫

我正在尝试对齐群集条形图中每个条形的百分比频率。现在,我的图表如下所示:

Rplot01

这也是代码:

ggplot(graph_data, aes(x, Freq)) +
    geom_bar(aes(fill = Pref), position = 'dodge', stat = 'identity') +
    geom_text(aes(label = sprintf("%.0f%%", round(Freq/sum(Freq) * 100))),
              hjust = -0.25) +
    labs(list(x = attr(graph_data, 'seg_label'),
              y = 'Frequency',
              title = paste('Q:', attr(graph_data, 'question')))) +
    scale_y_continuous(limits = c(0, 1.2 * max(graph_data$Freq))) +
    guides(fill = F) +
    coord_flip() +
    annotate("text", x = Inf, y = Inf,
             label = paste0("N = ", sum(graph_data$Freq)),
             hjust = 1.5, vjust = 1.5)

我认为可以通过以下代码段解决此问题,但是我不确定如何:

geom_text(aes(label = sprintf("%.0f%%", round(Freq/sum(Freq) * 100))), hjust = -0.25)

任何帮助将不胜感激!

编辑:这也是我的数据结构的示例:

df <- data.frame(x = rep(c('1824', '2534', '3544'), 3),
                 Pref = rep(c('low', 'neutral', 'high')),
                 Freq = 1:9 * 10)
Timcdlucas

如评论中所述,我认为这是躲避barplot上position geom_text的副本

但是我现在做到了,所以我将包含代码。

ggplot(df, aes(x, Freq, fill = Pref)) +
    geom_bar(position = 'dodge', stat = 'identity') +
    geom_text(aes(label = sprintf("%.0f%%", round(Freq/sum(Freq) * 100))),
          position = position_dodge(width = 0.9), hjust = -0.25) +
    labs(list(x = attr(df, 'seg_label'),
              y = 'Frequency',
              title = paste('Q:', attr(df, 'question')))) +
    scale_y_continuous(limits = c(0, 1.2 * max(df$Freq))) +
    guides(fill = F) +
    coord_flip()

您需要放入fill原件,aes这样才能geom_text知道以哪个数量躲避哪个标签。

在此处输入图片说明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在条形图上的条形上方写文本(Python)?

如何使用ggplot2在R中的每个条形图上在geom_bar上放置标签

ggplot2:如何向上移动x轴,使其可以在水平条形图上任意选择的条形下?

如何在ggplot2地图上绘制条形图

如何在ggplot2中制作单个堆积的条形图

如何在ggplot堆栈条形图上添加总线

如何在ggplot2的条形图上使geom_errorbar正确“躲避”?

ggplot2 geom_text在水平分组条形图上的位置文本

如何在ggplot2中使用position_fill将文本对齐到条形图?

如何在躲避的条形图(ggplot2)中向x轴添加图例文本

如何在R中使用ggplot2在条形图中的条形图中添加标签?

ggplot2在堆叠的条形图上放置标签

gnuplot:如何在群集直方图的条形图上绘制点?

如何在水平Seaborn条形图上注释文本?

将标签与ggplot2中的金字塔条形图对齐

如何在ggplot2中绘制组合的条形图和折线图

如何在ggplot2中做并排条形图?

如何在ggplot2中的分组条形图列上放置标签

R ggplot2条形图,条形图上有圆角

如何使用ggplot2在条形图上放置标签?

如何在我的ggplot2 2因子条形图上放置标准误差条?

如何在ggplot2中绘制(复杂的)堆叠条形图,而无需复杂的手动数据聚合

在ggplot2中的堆叠条形图上方绘制线

如何在R中的ggplot2中向条形图方面添加百分比?

R ggplot2 如何在条形图上绘制标准偏差

如何在R中从最高到最低对条形图进行排序?(ggplot2)

如何在 R 中的 ggplot2 的条形图中绘制多个变量(即类别)

如何在ggplot2的geom_text中舍入条形图的数据标签?

对齐水平条形图上的文本