Фон
Я разыгрываю сюжеты бокса и скрипки с 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](https://i.stack.imgur.com/YAGzK.png)
Скрипичный сюжет
ggplot(aes(x = state, y = value), data = df) + geom_violin()
Ничего.Получено предупреждающее сообщение.
![enter image description here](https://i.stack.imgur.com/J9l1W.png)
Две-три точки данных: иногда отображается график
Если это не так, это как в случаеодной точки данных.Если он отрендерен, квантильные линии не согласованы.
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](https://i.stack.imgur.com/s4Vuh.png)
Скрипичный график
ggplot(aes(x = state, y = value), data = df) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75))
![enter image description here](https://i.stack.imgur.com/McmMa.png)
Как видите, квантильные линии несовместимы друг с другом.
Вопросы
- Почему сюжет скрипки не отображается, когда есть только одна точка данных?Я посмотрел оценка плотности ядра и подумал, что должна быть очень широкая, но плоская скрипка.Существуют ли другие ограничения или ограничения в
geom_violin
?Или это правило игры на скрипке? - Почему квантили 25% и 75% располагаются в разных местах между рамкой и скрипкой во втором случае?