добавьте вторичную ось y к графикам ggplot2 - сделайте ее идеальной - PullRequest
12 голосов
/ 01 февраля 2012

Добавление вторичной оси 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 Ответ

2 голосов
/ 01 февраля 2012

Чтобы избежать взлома, вы можете использовать facet_grid. В зависимости от ваших данных, вы можете очень хорошо настроить их, чтобы сделать их более общей вторичной осью.

 library(ggplot2)
 ggplot(mtcars, aes(factor(cyl), mpg)) + 
   geom_boxplot() + 
   facet_grid(cyl ~., scales = "free")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...