图例的美学与情节不符

时间:2019-07-26 08:48:00

标签: r data-visualization ggplot2

我是R的新手,我有一个愚蠢的问题无法解决。

因此,我试图绘制一组数据,但无法为该图和图例中的点设置相同的形状。 我是代表抖动点和每组平均值的一条线的东西。

sex_shape <- as.numeric(kIn$Sex)
sex_shape2 <- replace(sex_shape, sex_shape==1, 16)
sex_shape3 <- replace(sex_shape2, sex_shape==2, 1)

kIn$Group <- relevel(kIn$Group, "Control")

library(ggplot2)
g <- ggplot(kIn, aes(x = kIn$Group, y = kIn$Distance))
graf <- g + 
coord_cartesian(ylim = c(0, 4000)) +
theme_classic() + 
theme(
    plot.title = element_text(hjust = 0.5, color = "#000000", size = 24, face = "bold"),
    axis.text.x = element_text(face="bold", color="#000000", size=18, angle=0),
    axis.text.y = element_text(face="bold", color="#000000", size=18, angle=0),
    axis.title = element_text(color = "#000000", size = 24, face = "bold"),
    axis.line =  element_line(color = "#000000", size = 1, linetype = "solid"),
    legend.title = element_text(colour="#000000", size=16, face="bold"),
    legend.text = element_text(colour="#000000", size=16, face="bold"),
)+
labs(title = "Distance Travelled", x = NULL, y = "Distance (cm)",  fill = NULL) + 

geom_jitter(size = 6, stroke = 2, alpha=0.9, position=position_jitter(w=0.2,h=0.2), aes(fill = sex_shape3), show.legend = TRUE)+

stat_summary(fun.data = "mean_se", fun.args = list(mult = 0), geom = "crossbar", width = .5, color = "black") 

print(graf)

Plot

如您所见,形状不对应。每一组由雄性和雌性组成,并以图中的一个特定形状表示。但是,图例中没有表示这种分类。

我做错了什么?

此外,我不为转换Sex列的糟糕解决方案感到骄傲。事实是,此列的数据由“男性”(1)或“女性”(2)组成,但是我需要将它们表示为“男性”的黑点和“女性”的白点。我实现此目标的唯一方法是使用肮脏的代码...

任何建议或技巧都将不胜感激。

谢谢。

0 个答案:

没有答案