作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让标题不言自明,但这里是 - 数据优先:
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")))
我想创建一个闪避条形图,执行coord_flip
并在条形内放置一些文本标签:
ggplot(bar) + geom_bar(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`)), position = "dodge") +
coord_flip()
你可以看到输出here .
我认为我要求的是一些微不足道的东西。我希望文本标签“跟随”堆叠的条形。标签正确放置在 y 轴上,但如何将它们正确放置在 x 轴上?
最佳答案
这是你想要的吗?
library(ggplot2)
ggplot(bar) +
geom_col(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`), group = ustanova),
position = position_dodge(width = .9)) +
coord_flip()
关键是position = position_dodge(width = .9)
(其中 .9
是条形的默认宽度)而不是 position = "dodge"
,这只是一个没有任何参数的快捷方式。此外,您还必须设置 group=ustanova
美学geom_text
躲避标签 ustanova
(第二个选择是通过 fill = ustanova
使 ggplot(bar, aes(fill = ustanova))
成为全局美学
<小时/>
在 ggplot2_2.0.0
您可以在 ?geom_text
中找到几个示例关于如何定位geom_text
在躲避或堆叠条上(名为“# Aligning labels and bars"
的代码块”)。问答 What is the width argument in position_dodge? 提供了对该主题的更全面的描述。
关于r - 将 geom_text 放置在躲避条形图上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017460/
这是我一直在尝试寻找修复方法的事情,但基本上我想知道是否有一种快速的方法来“躲避”ggplot2中两个不同数据集的线图。 我的代码目前是: #Example data id <- c("A","A")
我是一名优秀的程序员,十分优秀!