Графики скрипки не показывают ожидаемые кривые плотности, как ожидалось, когда уникальные точки меньше четырех - PullRequest
0 голосов
/ 20 декабря 2018

Фон

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

Одна точка данных: участок не отображается

df <- data.frame(state = "bedtime", value = 100)

Boxсюжет

ggplot(aes(x = state, y = value), data = df) + geom_boxplot() + geom_point()

enter image description here

Скрипичный сюжет

ggplot(aes(x = state, y = value), data = df) + geom_violin()

Ничего.Получено предупреждающее сообщение.

enter image description here

Две-три точки данных: иногда отображается график

Если это не так, это как в случаеодной точки данных.Если он отрендерен, квантильные линии не согласованы.

df <- data.frame(state = rep("after_meal", 4), value = rep(c(178, 162), each = 2))

Коробчатый график

ggplot(aes(x = state, y = value), data = df) + geom_boxplot() + geom_point()

enter image description here

Скрипичный график

ggplot(aes(x = state, y = value), data = df) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75))

enter image description here

Как видите, квантильные линии несовместимы друг с другом.

Вопросы

  1. Почему сюжет скрипки не отображается, когда есть только одна точка данных?Я посмотрел оценка плотности ядра и подумал, что должна быть очень широкая, но плоская скрипка.Существуют ли другие ограничения или ограничения в geom_violin?Или это правило игры на скрипке?
  2. Почему квантили 25% и 75% располагаются в разных местах между рамкой и скрипкой во втором случае?

1 Ответ

0 голосов
/ 20 декабря 2018

График скрипки - это график плотности оценка , отраженный вдоль вертикальной оси, и он отличается от блочного графика тем, что на блочном графике отображаются сами данные.

Первый вопрос: с одной точкой плотность бесконечна, потому что вы запрашиваете ее в одной конкретной точке пространства с нулевой шириной, т.е. бесконечной высотой (чтобы увидеть это, замените geom_violin на geom_density.

.Вторая проблема проистекает из того же: квадратный график более точен для небольшого числа точек, потому что оценка плотности непрерывна и не очень четко определена для очень короткого диапазона.

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