2015-05-27 44 views
3

我有一个散点图,可以按类别将点分成不同的颜色。我希望这些类别中的一个有连接点的线条来突出显示此类别的数据。我无法解决这个问题...使用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

+1

最低工作的例子是这些类型的问题非常有帮助。如果你没有得到你正在寻找的答案,你可以考虑添加一个MWE。 –

回答

1

尝试添加:

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

enter image description here

非常简单的代码,这使得您的数据的一个子集,其中通过使大小为2的一个很好的线你的数据点。

(用于图像我用了对手米格尔·库托,因为你没有在数据集提供帕奎奥)

4

我无法在您的数据样本上运行代码时无法提供量身定制的答案,但您可以使用scale_color_manual来设置颜色您想要突出显示的类别,例如“红色”,并将所有其他设置为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))) 

enter image description here