R 在减淡条形图上定位几何图形文字

R 在减淡条形图上定位几何图形文字,r,plot,ggplot2,bar-chart,R,Plot,Ggplot2,Bar Chart,我试图让标题不言自明,但这里是数据优先: dtf <- structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"), ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L),

我试图让标题不言自明,但这里是数据优先:

dtf <- structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 
4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"), 
    ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
    2L), .Label = c("srednja škola", "fakultet"), class = "factor"), 
    `(all)` = c(42.9542857142857, 38.7803203661327, 37.8996138996139, 
    33.7672811059908, 29.591439688716, 26.1890660592255, 27.9557692307692, 
    23.9426605504587, 33.2200772200772, 26.9493087557604)), .Names = c("variable", 
"ustanova", "(all)"), row.names = c(NA, 10L), class = c("cast_df", 
"data.frame"), idvars = c("variable", "ustanova"), rdimnames = list(
    structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 
    3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", 
    "fla"), class = "factor"), ustanova = structure(c(1L, 2L, 
    1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("srednja škola", 
    "fakultet"), class = "factor")), .Names = c("variable", "ustanova"
    ), row.names = c("vma_srednja škola", "vma_fakultet", "vla_srednja škola", 
    "vla_fakultet", "ia_srednja škola", "ia_fakultet", "fma_srednja škola", 
    "fma_fakultet", "fla_srednja škola", "fla_fakultet"), class = "data.frame"), 
    structure(list(value = structure(1L, .Label = "(all)", class = "factor")), .Names = "value", row.names = "(all)", class = "data.frame")))
您可以看到输出

我想我是在要求一些琐碎的东西。我希望文本标签“跟随”堆叠的条。标签正确放置在y轴上,但如何在x轴上正确定位标签?

这就是您想要的吗

ggplot(bar) + 
  geom_bar(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
  geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`)), 
            position = position_dodge(width = 1)) + 
  coord_flip()
该键使用的是
position=position\u dodge(width=1)
而不是
position=“dodge”
,这只是一个没有任何参数的快捷方式



ggplot2\u 2.0.0
中,您可以在
?geom\u text
中找到几个示例,说明如何在减淡或堆叠的条带上定位
geom\u text
(名为“
”的代码块对齐标签和条带“
)。问答部分对该主题进行了更全面的描述

是的。。。我应该把这个贴在ggplot2邮件列表上。我不想越位,所以我要戴上我的耐心帽,等待@hadley想出点什么我错了。显然,我需要更多地了解ggplot软件包。这正是我想要的!这次我欠你一杯啤酒那么,有没有办法实现自动化呢?必须始终指定宽度?这仅在我在
geom_text
层中添加
fill=ustanova
后对我有效,尤其是当您有许多水平条时(每x可能只需要3条以上的条)对于facetted和dodged,这是一个有用的答案:@Alan在我对stackoverflow进行的所有搜索中,你的答案是唯一解决我问题的答案。
ggplot(bar) + 
  geom_bar(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
  geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`)), 
            position = position_dodge(width = 1)) + 
  coord_flip()