Я собираюсь построить соотношение шансов с R/ggplot2, и я хочу добавить две стрелки снизу или рядом с меткой оси X. Один из них указывает налево, один указывает направо, демонстрируя отрицательное влияние. Я пробовал много вещей, таких как geom_path, geom_line, без больших успехов. Это мой код:R & ggplot2: Как получить стрелки под меткой оси?
forest <- function(d, xlab="Odds Ratio", ylab="Influencing variables"){
require(ggplot2)
p <- ggplot(d, aes(x=ordered(x, levels=rev(x)), y=y, ymin=ylo, ymax=yhi)) +
geom_pointrange() +
geom_segment(aes(x = 0, xend = 0, y= 1, yend= 2)) +
coord_flip() +
geom_hline(aes(yintercept=1), lty=2) +
ylab(xlab) +
xlab(ylab) +
scale_y_log10()
return(p)
}
##Test Data
data <- data.frame(x = c("A","B","C","D","E","F","G","H","I"),
y = c(1.782,0.136,0.978,0.645,0.518,1.474,0.855,0.673,0.369))
data <- transform(data, ylo = (0.719,0.046,0.945,0.295,0.188,0.577,0.407,0.310,0.145),
yhi = c(4.420,0.398,1.012,1.411,1.424,3.768,1.798,1.460,0.940))
forest(data)
Добавление линии, как geom_line (АЕС (х = 1), стрелка = стрелка (длина = единица (0,15, "см")), цвет = "черный", размер = 1) содержит несколько стрелок, но они сталкиваются с моими исходными данными.
Заранее благодарен за ваше решение, помощь или подсказку!
Марк
Спасибо за вашу помощь! Это делает меня большим шагом ближе к тому, что мне нужно. Мое намерение состояло в том, чтобы нарисовать эти две стрелки под «y». Но, возможно, этого достаточно. – Marc
@Marc - Рисование за пределами области печати технически возможно, но сложное, требуя, чтобы вы возились с пакетом «сетка» и видовыми экранами. Я часто говорю людям, что для необычных пользовательских аннотаций, таких как это, часто быстрее/проще просто изменять изображение после факта в редакторе изображений, например Illustrator, или что-то в этом роде. – joran