【发布时间】:2019-05-21 02:05:56
【问题描述】:
背景
我正在用ggplot2 玩箱形图和小提琴图,但我发现一些奇怪的现象只有在唯一数据的数量少于四个时才会发生。我不太确定 SO 是否适合这个帖子,如果不是,请引导我到正确的地方。
单个数据点:绘图未呈现
df <- data.frame(state = "bedtime", value = 100)
箱线图
ggplot(aes(x = state, y = value), data = df) + geom_boxplot() + geom_point()
小提琴情节
ggplot(aes(x = state, y = value), data = df) + geom_violin()
什么都没有。收到一条警告消息。
两到三个数据点:有时会渲染绘图
如果不是,则类似于单个数据点的情况。如果渲染,分位数线不一致。
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()
小提琴情节
ggplot(aes(x = state, y = value), data = df) + geom_violin(draw_quantiles = c(0.25, 0.5, 0.75))
如您所见,分位数线彼此不一致。
问题
- 为什么只有一个数据点时不显示小提琴图?我查了kernel density estimation,我想应该有一把很宽但很平的小提琴。
geom_violin中是否还有其他限制或约束?还是小提琴情节的规律? - 在第二种情况下,为什么 25% 和 75% 分位数放在箱线图和小提琴图之间的不同位置?
【问题讨论】:
标签: r ggplot2 boxplot violin-plot