Отрегулируйте ось Y гистограммы так, чтобы можно было красиво отобразить значительно более высокие значения Y

Я создаю гистограмму с некоторыми значениями, используя R и ggplot2. Создание графика и все работает хорошо, однако у меня есть значения y, которые в основном находятся в одном общем диапазоне значений с одним или двумя значительно более высокими значениями.

Чтобы уточнить, мои значения y выглядят примерно так:

[10, 12, 13, 5000, 14, 11]

y = c(10, 12, 13, 5000, 14, 11)

(Для полноты: значения x представляют собой простые приращения времени, например 1,2,3,4,5)

Создание графика и все работает хорошо, за исключением того, что из-за значительно более высокого значения вся диаграмма очень «уменьшена». Я знаю, что могу отфильтровать эти более высокие значения, установив пределы, однако я хотел бы сохранить их на графике и, следовательно, задаться вопросом, есть ли способ установить видимый «разрыв» в шкале y, чтобы он продолжался со значением то есть в диапазоне большего значения.

Я создал небольшую картинку с помощью краски, чтобы пояснить, что я имею в виду:

изображение

Есть ли способ сделать это с помощью R/ggplots2? В качестве альтернативы, я также хотел бы знать, есть ли у кого-нибудь альтернативные идеи о том, как можно красиво изобразить такие значения, не отмечая их отдельно.

Спасибо,

Клинринг


person Klinring    schedule 29.08.2019    source источник


Ответы (1)


Проблему можно решить, создав новую бинарную переменную в зависимости от значения y. Для этого необходимо заранее установить порог.

library(ggplot2)

threshold <- 25
df1$big <- factor(df1$y <= threshold, labels = c("> 25", "<= 25"))

ggplot(df1, aes(x, y)) +
  geom_col() +
  facet_wrap(~ big, "free_y", nrow = 2)

введите здесь описание изображения

Затем новую переменную можно удалить.

df1$big <- NULL

Данные.

df1 <- data.frame(x = LETTERS[1:6], 
                  y = c(10, 12, 13, 5000, 14, 11))
person Rui Barradas    schedule 29.08.2019