在 geom_boxplot 上叠加 geom_points(aes(shape))?
Overlay geom_points(aes(shape)) on geom_boxplot?
我只是想绘制一个 ggplot
在箱线图上叠加点图的图形。我得到了非常奇怪的结果,希望有人能告诉我为什么以及如何解决它。 Overlay geom_points() on geom_boxplot(fill=group)? 这里有一个类似的问题。但我的关键问题是 shape
.
举个例子:
library(ggplot2)
library(dplyr)
head(mtcars)
data = data.frame(
x = factor(mtcars$vs),
y = mtcars$wt,
fill = factor(mtcars$am)
) %>%
dplyr::arrange(x, fill) %>%
dplyr::mutate(shape = rep(letters[1:4], 8))
set.seed(1)
ggplot(data, aes(x, y, fill = fill)) +
geom_boxplot() +
geom_point(position=position_jitterdodge())
我可以得到一个情节:
然后我添加形状映射。你可以看到所有的点都完全改变了。我想要的是与上面相同的图,只是点的形状发生了变化。即,点的位置不应改变。不知道为什么加了shape mapping之后,点分配给box group不对
set.seed(1)
ggplot(data, aes(x, y, fill = fill)) +
geom_boxplot() +
geom_point(aes(shape = shape), position=position_jitterdodge())
在这种情况下,我们希望位置抖动能够“意识到”fill
美学中区分的两个填充值。由于此处的形状没有 fill
美感,因此图层在应用抖动之前不会自动分离两个填充值。为了让层“知道”填充值,我们可以使用
geom_point(aes(shape = shape, group = fill),
position=position_jitterdodge())
其中 group = fill
告诉图层根据该变量对点进行分组,然后这将反映在点抖动的方式中。
我只是想绘制一个 ggplot
在箱线图上叠加点图的图形。我得到了非常奇怪的结果,希望有人能告诉我为什么以及如何解决它。 Overlay geom_points() on geom_boxplot(fill=group)? 这里有一个类似的问题。但我的关键问题是 shape
.
举个例子:
library(ggplot2)
library(dplyr)
head(mtcars)
data = data.frame(
x = factor(mtcars$vs),
y = mtcars$wt,
fill = factor(mtcars$am)
) %>%
dplyr::arrange(x, fill) %>%
dplyr::mutate(shape = rep(letters[1:4], 8))
set.seed(1)
ggplot(data, aes(x, y, fill = fill)) +
geom_boxplot() +
geom_point(position=position_jitterdodge())
我可以得到一个情节:
然后我添加形状映射。你可以看到所有的点都完全改变了。我想要的是与上面相同的图,只是点的形状发生了变化。即,点的位置不应改变。不知道为什么加了shape mapping之后,点分配给box group不对
set.seed(1)
ggplot(data, aes(x, y, fill = fill)) +
geom_boxplot() +
geom_point(aes(shape = shape), position=position_jitterdodge())
在这种情况下,我们希望位置抖动能够“意识到”fill
美学中区分的两个填充值。由于此处的形状没有 fill
美感,因此图层在应用抖动之前不会自动分离两个填充值。为了让层“知道”填充值,我们可以使用
geom_point(aes(shape = shape, group = fill),
position=position_jitterdodge())
其中 group = fill
告诉图层根据该变量对点进行分组,然后这将反映在点抖动的方式中。