Как показать выбросы в гистограмме ggplot? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть некоторые данные, где большинство значений (около 10 миллионов в реальных данных) близки к нулю, но есть несколько выбросов.Я хочу показать распределение с гистограммой.Для содержания и анализа данных также важны выбросы и, следовательно, они должны быть видны на гистограмме.Использование логарифмической шкалы на y-axis работает довольно хорошо, но остается проблемой.y-axis теперь начинается с 1. Таким образом, корзины с ровно одним элементом в них не отображаются и не могут быть отделены от пустых.Кроме того, я получаю предупреждающее сообщение о бесконечных значениях для пустой корзины (это правильно, $ log (0) = - \ infty $).

Я сделал небольшой пример кода:

library(ggplot2)
set.seed(123)

data <- data.frame(x=c(abs(rnorm(10000)), 5.25, 5.5, 7.5))

ggplot(data, aes(x)) + 
    geom_histogram(binwidth=1, boundary=0) + 
    scale_y_log10()

Два выброса между 5 и 6 хорошо показаны, но тот, что в 7,5, нельзя отличить от двух пустых контейнеров.Как мне сказать ggplot, чтобы начать рисовать ячейки с y-value меньше 1?

PS: stackoverflow не позволяет mathjax для отображения математики?

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете использовать scale_y_sqrt() в качестве альтернативного преобразования:

library(ggplot2)
set.seed(123)

data <- data.frame(x=c(abs(rnorm(10000)), 5.25, 5.5, 7.5))

ggplot(data, aes(x)) + 
    geom_histogram(binwidth=1, boundary=0) + 
    scale_y_sqrt()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...