我有一个散点图,可以按类别将点分成不同的颜色。我希望这些类别中的一个具有连接点的线以突出显示该类别的数据。我无法搞清楚这一点......
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
答案 0 :(得分:4)
如果您无法在数据样本上运行代码,我无法提供量身定制的答案,但您可以使用scale_color_manual
设置要突出显示的类别的颜色,例如“红色“并将所有其他人设置为NA
。例如,如果要突出显示的类别是第二个类别,并且您总共有五个类别,则将其添加到您的绘图代码中:
scale_colour_manual(values=c(NA, "red", rep(NA,3)))
如果您的点数也与颜色美学相关联,那么您需要将点数更改为填充美学(例如,fill=Opponent
)并使用可以手动设置的填充点标记使用shape
或pch
。否则,您的点标记将随线条一起消失。标记号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)))
答案 1 :(得分:1)
尝试添加:
geom_line(data=subset(floyd,Opponent=="Manny Pacquiao"), aes(factor(Round), Opp.Landed, group=Opponent), size = 2)
非常简单的代码片段,它使您的数据子集通过您的数据点提供了一个很好的第2行。
(因为你没有在数据集中提供Manny Pacquiao,因此我使用了对手Miguel Cotto的图像)