ggplot geom_point position_jitterdodge 在指定颜色时不起作用?
ggplot geom_point position_jitterdodge not working when color specified?
我绘制了箱线图+点。我想为点添加颜色。 position_jitterdodge
在没有颜色的情况下工作正常,如图 B 所示,点很接近,这是我打算做的。但是当我尝试为点添加颜色时,jitter.width
参数不再起作用(图 A)。点相距太远。我为 jitter.width
尝试了不同的数字,但没有用。我该如何解决这个问题?
library(tidyverse)
library(ggpubr)
mtcars$cyl <- factor(mtcars$cyl)
p1 <- mtcars %>% ggplot(aes(x = cyl, y = mpg, fill = cyl)) +
geom_boxplot() +
geom_point(position = position_jitterdodge(jitter.width = 0.2),
aes(color = factor(wt)), show.legend = FALSE)
p2 <- mtcars %>% ggplot(aes(x = cyl, y = mpg, fill = cyl)) +
geom_boxplot() +
geom_point(position = position_jitterdodge(jitter.width = 0.2))
ggarrange(p1, p2, labels = c("A", "B"))
在p1中,点不仅抖动了,还被factor(wt)
躲开了。如果只想要抖动,在position_jitterdodge
.
中设置dodge.width = 0
看起来问题在于这些点具有离散的 color
美感,但没有 group
美感。如果您想通过离散变量保持着色,请将 group = cyl
添加到 geom_point
层的美学中。如果您使用另一个数据集进行绘图,则分组变量将与您沿 x 轴绘制的变量相同。
一个问题:在应用分组时必须增加 jitter.width
才能使其可见。我不得不在这里把它从 0.2 调高到 3。
另一种选择是按连续变量着色。
library(tidyverse)
library(ggpubr)
mtcars$cyl=factor(mtcars$cyl)
p3=mtcars %>% ggplot(aes(x=cyl, y=mpg, fill=cyl))+
geom_boxplot()+
geom_point(aes(color = factor(wt), group = cyl),
position=position_jitterdodge(jitter.width=0.2),
show.legend = F)
p4=mtcars %>% ggplot(aes(x=cyl, y=mpg, fill=cyl))+
geom_boxplot()+
geom_point(aes(color = wt),
position=position_jitterdodge(jitter.width=0.2),
show.legend = F)
ggarrange(p3, p4)
这最终会呈现内联,但现在 link:color_and_jitter
我绘制了箱线图+点。我想为点添加颜色。 position_jitterdodge
在没有颜色的情况下工作正常,如图 B 所示,点很接近,这是我打算做的。但是当我尝试为点添加颜色时,jitter.width
参数不再起作用(图 A)。点相距太远。我为 jitter.width
尝试了不同的数字,但没有用。我该如何解决这个问题?
library(tidyverse)
library(ggpubr)
mtcars$cyl <- factor(mtcars$cyl)
p1 <- mtcars %>% ggplot(aes(x = cyl, y = mpg, fill = cyl)) +
geom_boxplot() +
geom_point(position = position_jitterdodge(jitter.width = 0.2),
aes(color = factor(wt)), show.legend = FALSE)
p2 <- mtcars %>% ggplot(aes(x = cyl, y = mpg, fill = cyl)) +
geom_boxplot() +
geom_point(position = position_jitterdodge(jitter.width = 0.2))
ggarrange(p1, p2, labels = c("A", "B"))
在p1中,点不仅抖动了,还被factor(wt)
躲开了。如果只想要抖动,在position_jitterdodge
.
dodge.width = 0
看起来问题在于这些点具有离散的 color
美感,但没有 group
美感。如果您想通过离散变量保持着色,请将 group = cyl
添加到 geom_point
层的美学中。如果您使用另一个数据集进行绘图,则分组变量将与您沿 x 轴绘制的变量相同。
一个问题:在应用分组时必须增加 jitter.width
才能使其可见。我不得不在这里把它从 0.2 调高到 3。
另一种选择是按连续变量着色。
library(tidyverse)
library(ggpubr)
mtcars$cyl=factor(mtcars$cyl)
p3=mtcars %>% ggplot(aes(x=cyl, y=mpg, fill=cyl))+
geom_boxplot()+
geom_point(aes(color = factor(wt), group = cyl),
position=position_jitterdodge(jitter.width=0.2),
show.legend = F)
p4=mtcars %>% ggplot(aes(x=cyl, y=mpg, fill=cyl))+
geom_boxplot()+
geom_point(aes(color = wt),
position=position_jitterdodge(jitter.width=0.2),
show.legend = F)
ggarrange(p3, p4)
这最终会呈现内联,但现在 link:color_and_jitter