繁体   English   中英

连接一个项目内的点,但使用箭头连接组

[英]Connect points within one item but across groups with arrows

我的图表目前包含多个x轴项目,每个项目获得2个y轴值(每组一个,表示使用stat_summary)。 但是,为了stat_summary的平均功能,图表被翻转(但这不是重点)。

df <- data.frame(
  value = c(0, 0, -2, 1, 2, -2, 3, 1, 2, 3, 2, -1),
  type = c('P', 'P', 'E', 'P', 'E', 'E', 'P', 'E', 'E', 'E', 'P', 'P'),
  item = c('well-written', 'concise', 'well-written', 'clear', 'concise', 'clear', 'lively', 'fair', 'lively', 'pleasing', 'pleasing', 'fair')
)

ggplot(df, aes(x=item, y=value, colour=type)) +
  stat_summary(fun.y=mean, geom='point', size=3) + 
  scale_y_continuous(limits=c(-3, 3), breaks=c(-3, -2, -1, 1, 2, 3), minor_breaks=c(0)) +
  scale_linetype_discrete() +
  coord_flip()

查看我当前的情节,没有任何箭头(现状): 在此输入图像描述

我想要的是,对于每一个项目(“精心编写”,“简洁”,......),从E(红点)到P(蓝点)绘制一个箭头。 因此,我想要多个水平箭头,每个项目一个。

怎么样?

这里只增加一点:我知道在这个例子中我不需要均值函数,但我的实际数据要大得多,并且包含多个P /写得好,E /简洁等值,这样平均函数才有意义

这是一种方法,但需要先创建第二个数据框:

library(tidyr)
df2 <- df %>% spread(type, value)

然后你可以像这样添加geom_segment

ggplot(df, aes(x=item, y=value, colour=type)) +
  stat_summary(fun.y=mean, geom='point', size=3) + 
  scale_y_continuous(limits=c(-3, 3), breaks=c(-3, -2, -1, 1, 2, 3), minor_breaks=c(0)) +
  scale_linetype_discrete() +
  coord_flip() +
  geom_segment(data = df2, aes(x = item, xend = item, y = E, yend = P, group = item), 
               colour = "black", 
               arrow = arrow())

在此输入图像描述

暂无
暂无

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

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