df <- data.frame(
x = c(1,3,2,5,4,2.5),
y = c(2, 3, 2.5, 1.8, 2.8, 1.5),
grp = c("A", "A", "A", "B", "B", "B"),
grp.inner = c("a", "b", "c", "a", "b", "c"),
label = c("abc","cd","d","c","bcd","a")
)
# default is no nudging
ggplot(df, aes(grp, y, label = label, fill = label)) +
geom_col(position = position_dodge(width = 0.92)) +
geom_text(position = position_dodgenudge_to(width = 0.92),
vjust = -0.2) +
theme(legend.position = "none")
ggplot(df, aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge(width = 0.92)) +
geom_text(position = position_dodgenudge_to(width = 0.92),
vjust = -0.2)
ggplot(df, aes(grp, y, label = label, fill = label)) +
geom_col(position = position_dodge2(width = 0.92)) +
geom_text(position = position_dodge2nudge_to(width = 0.92),
vjust = -0.2) +
theme(legend.position = "none")
ggplot(df, aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge2(width = 0.92)) +
geom_text(position = position_dodge2nudge_to(width = 0.92),
vjust = -0.2)
# nudging all labels to a given y value
ggplot(df, aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge(width = 0.92)) +
geom_text(position = position_dodgenudge_to(width = 0.92, y = 0.8))
ggplot(df, aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge2(width = 0.92)) +
geom_text(position = position_dodge2nudge_to(width = 0.92, y = 0.8))
ggplot(df, aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge(width = 0.92)) +
geom_text(position = position_dodgenudge_to(width = 0.92, y = 0.8))
ggplot(df[-1, ], aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge(width = 0.92)) +
geom_text(position = position_dodgenudge_to(width = 0.92, y = 0.8))
ggplot(df[-1, ], aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge(width = 0.92, preserve = "total")) +
geom_text(position = position_dodgenudge_to(width = 0.92, y = 0.8,
preserve = "total"))
ggplot(df[-1, ], aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge(width = 0.92, preserve = "single")) +
geom_text(position = position_dodgenudge_to(width = 0.92, y = 0.8,
preserve = "single"))
ggplot(df[-1, ], aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge2(width = 0.92, preserve = "total")) +
geom_text(position = position_dodge2nudge_to(width = 0.92, y = 0.8,
preserve = "total"))
ggplot(df[-1, ], aes(grp, y, label = label, fill = grp.inner)) +
geom_col(position = position_dodge2(width = 0.92, preserve = "single")) +
geom_text(position = position_dodge2nudge_to(width = 0.92, y = 0.8,
preserve = "single"))
Run the code above in your browser using DataLab