Добавьте вторичную ось y к графикам ggplot2 - сделайте ее совершенной
Добавление вторичной оси y, масштабированной одной из исходной оси y. Эта тема не нова. Были затронуты времена, например в этом ggplot2 нигерии google. Следуя совету Хэдли, я попытался добавить вторую ось y на geom_vline
, geom_segment
и geom_text
. Но это все еще некрасиво.
Поэтому я попрошу вас о помощи, чтобы сделать ее совершенной. Я думаю, что многие пользователи ggplot2 будут заинтересованы в этой теме и предпочитают любые ваши знания или вклады. Спасибо заранее.
#########################################
# what I have gotten.
library(ggplot2)
# build up a box plot
p <- ggplot(mtcars, aes(factor(cyl), mpg))
# add the secondary y axis on right side of the plot
p + geom_boxplot() + geom_vline(xintercept = 3.5) +
geom_segment(aes(x=3.49, y=c(7,14,21,28), xend = 3.52, yend = c(7,14,21,28))) +
geom_text(aes(x=3.55, y=c(7,14,21,28), label=c(7,14,21,28)))
Ответы
Ответ 1
Чтобы избежать взлома, вы можете использовать facet_grid
. В зависимости от ваших данных вы можете настроить его довольно хорошо, чтобы сделать его более общей вторичной осью.
library(ggplot2)
ggplot(mtcars, aes(factor(cyl), mpg)) +
geom_boxplot() +
facet_grid(cyl ~., scales = "free")
![enter image description here]()