使用ggplot2在散点图中用线连接点

Connecting points with a line in scatterplot using ggplot2

我有一个散点图,它按类别将点分成不同的颜色。我希望这些类别之一有一条线连接点以突出显示该类别的数据。我无法弄清楚这一点...

Round <- read.csv("http://goo.gl/3c3vBU") # Data

qplot(factor(Round), Opp.Landed, data=floyd, color=Opponent, size=Opp.Percent.Landed, alpha = I(0.7)) + 
  labs(x="Round", y="Punches Landed", title="Opponent Punches Landed / Percentage", colour="Boxer", size="Connect Percentage") +
  scale_linetype_manual(values=1:2, labels=c("Boxer", "Connect Percentage")) +
  guides(colour = guide_legend(override.aes = list(size=5)))

ftheme 代码只是颜色和格式。有任何想法吗?我试过添加 geom_line(aes(linetype=floyd[Opponent="Manny Pacquiao"]), size=1) 但它出错了

Error in [.data.frame`(floyd, Opponent = "Manny Pacquiao") :    unused argument (Opponent = "Manny Pacquiao")

编辑:我更新了上面的代码以排除 ftheme,因此它是可重现的。请查看三个类别的示例数据集。我只希望其中任何一个具有连接点:http://goo.gl/3c3vBU

如果无法根据您的数据样本 运行 您的代码,我无法给出量身定制的答案,但您可以使用 scale_color_manual 设置您想要的类别的颜色突出显示 "red" 并将所有其他设置为 NA。例如,如果您要突出显示的类别是第二个类别,并且您总共有五个类别,则将此添加到您的情节代码中:

scale_colour_manual(values=c(NA, "red", rep(NA,3)))

如果您也有与颜色美学相关的点,那么您需要将这些点更改为填充美学(例如,fill=Opponent)并使用您可以使用的填充点标记使用 shapepch 手动设置。否则,您的点标记将与线条一起消失。标记编号 21 到 25 已填充(有关点标记的更多信息,请参阅 ?pch)。

更新: 这是我使用您提供的数据进行的尝试。我不太确定您希望图例和其他细节看起来如何,所以请告诉我这是否可行。我已经切换到 ggplot,因为我不知道 qplot 的来龙去脉。

ggplot(floyd, aes(factor(Round), Opp.Landed, color=Opponent, 
                  fill=Opponent, group=Opponent, size=Opp.Percent.Landed), 
       alpha = 0.7, pch=21) +
  geom_point(pch=21, colour=NA) +
  geom_line() +
  labs(x="Round", y="Punches Landed", title="Opponent Punches Landed / Percentage", 
       colour="Boxer", size="Connect Percentage") +
  scale_linetype_manual(values=1:2, labels=c("Boxer", "Connect Percentage")) +
  scale_colour_manual(values=c(hcl(15,100,65), NA, NA), guide="none") +
  guides(fill = guide_legend(override.aes = list(size=5))) 

尝试添加:

 geom_line(data=subset(floyd,Opponent=="Manny Pacquiao"), aes(factor(Round), Opp.Landed, group=Opponent), size = 2)

一段非常简单的代码,它使您的数据的一个子集通过您的数据点给出了一条大小为 2 的漂亮线。

(因为你没有在数据集中提供曼尼帕奎奥,所以我使用了对手米格尔库托的图像)