繁体   English   中英

用线 ggplot2 连接箱线图上的数据点

[英]Join data points on boxplot with lines ggplot2

我正在尝试在以下图表上可视化成对的数据点集:

ggplot(grid.mag.ROIcontrols.allRuns, aes(Model,Grid_Magnitude)) +
  geom_boxplot(aes(fill=Model),outlier.shape = NA,alpha=0.6) +
  geom_point(aes(fill=Model),size=2,shape=21,position=position_jitterdodge(0.2)) +
  geom_line(aes(group=Side)) +
  facet_grid(~Side,scales = "free") +
  scale_fill_brewer(palette="GnBu") +
  labs(title = "Average Grid Magnitude, pm vs al EC")

线连接alLeft6 / pmLeft6alRight6 / pmRight6之间的点。

但是,带有我需要的组变量的geom_line不起作用 - 当我需要为 10 对中的每一对设置一条水平线时,它会在数据点之间添加垂直线和一条水平线。

没有geom_line没有 geom_line

使用geom_line与 geom_line

PS:对不起,我不知道如何分享原始数据......

如果没有实际数据,很难为您提供深入的帮助,如评论中所述,请参阅此站点以获取可重现示例的指南。

我假设您想将 alLeft6 中的一个数据点与 pmLeft6 中的一个数据点进行比较(否则水平线将毫无意义)。 这表明您的数据中有一些列将这些点链接在一起(示例数据中的Pairs )。

使用geom_line()数据,这就像将geom_line()分组变量设置为此列 ( Pairs ) 一样简单。 要对齐geom_point()geom_line()与抖动的简单的解决方案是定义ggplot调用(这里称为前偏移pd )。

library(tidyverse)
grid.mag.ROIcontrols.allRuns = tibble(Model = c(rep("alLeft6", 10),rep("pmLeft6", 10),rep("alRight6", 10),rep("pmRight6", 10)),
                                      Grid_Magnitude = c(runif(10, -1, 1),runif(10, -0.5, 1.5), runif(10, -1, 1),runif(10, -1.5, 0.5)),
                                      Side = c(rep("Left", 20), rep("Right", 20)),
                                      Pair = c(rep(1:10, 2), rep(11:20, 2)) 
) %>%
  mutate(Pair = as.factor(Pair))

pd <- position_dodge(0.2)
ggplot(grid.mag.ROIcontrols.allRuns, aes(Model,Grid_Magnitude)) +
  geom_boxplot(aes(fill=Model),outlier.shape = NA,alpha=0.6) +
  geom_line(aes(group=Pair), position = pd) +
  geom_point(aes(fill=Model,group=Pair),size=2,shape=21, position = pd) +
  facet_grid(~Side,scales = "free") +
  scale_fill_brewer(palette="GnBu") +
  labs(title = "Average Grid Magnitude, pm vs al EC")

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM