2015-05-27 43 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