Как маркировать бар барплот с положительными и отрицательными барами с ggplot2
Я пытаюсь построить помеченный штрих-код с ggplot2 с положительными и отрицательными барами.
Это работает до сих пор, но я хотел бы установить ярлык за пределами панели, чтобы он находился выше или под панелью. Я попытался установить настройку в vjust = c(x1,...,xn)
, где x
- положительное или отрицательное значение в соответствии со значением строки в geom_text()
. Это не работает. Я просто получил сообщение об ошибке: "При настройке эстетики они могут принимать только одно значение. Проблемы: vjust"
С нормальной работой команды plot. Я хочу повторить эту команду в ggplot2:
xpos <- barplot(d, col=mycols, main='Verteilung in Dresden 2004',
ylab='Anteil in %', xlab='Milieu', names.arg=l,
cex.axis=0.7, cex.names=0.7, ylim=c(0,max(d)+0.05))
boxed.labels(xpos,d+0.02,sprintf('%d%s', d*100, '%'),
bg='transparent', border=FALSE, cex=0.7)
Чтобы это выглядело так просто в хорошем...;-)
![]()
Есть ли у кого-нибудь предложения?
Спасибо за помощь.
Ответы
Ответ 1
Это трюк
library(plyr)
library(ggplot2)
library(scales)
dtf <- data.frame(x = c("ETB", "PMA", "PER", "KON", "TRA",
"DDR", "BUM", "MAT", "HED", "EXP"),
y = c(.02, .11, -.01, -.03, -.03, .02, .1, -.01, -.02, 0.06))
ggplot(dtf, aes(x, y)) +
geom_bar(stat = "identity", aes(fill = x), legend = FALSE) +
geom_text(aes(label = paste(y * 100, "%"),
vjust = ifelse(y >= 0, 0, 1))) +
scale_y_continuous("Anteil in Prozent", labels = percent_format()) +
opts(axis.title.x = theme_blank())
![enter image description here]()