Могу ли я вставить разрыв оси с помощью ggplot2?

Я хочу построить столбчатый график, на котором одно из значений намного больше, чем все другие значения . Есть ли способ получить прерывистую ось Y? Мои данные следующие:

df <- data.frame(a = c(1,2,3,500), b = c('a1', 'a2','a3', 'a4'))

p <- ggplot(data = df, aes(x = b, y = a)) + geom_bar() 
p <- p + opts(axis.text.x=theme_text(angle= 90, hjust=1))  + coord_flip()
p

enter image description here

Есть ли способ, которым я могу заставить мою ось двигаться от 1 до 10, затем от 490 до 500? Я не могу придумать ни одного другой способ построения данных (кроме их преобразования, чего я не хочу делать)

[Edit 2019-05-06]:

8 лет спустя в приведенный выше код необходимо внести изменения для работы с версией 3.1.1 ggplot2 , чтобы создать ту же диаграмму:

library(ggplot2)
ggplot(df) + 
  aes(x = b, y = a) +
  geom_col() +
  coord_flip()
52
задан Uwe 5 May 2019 в 21:58
поделиться