2015-12-03 40 views
0

我與ggplot2以下,用下面的代碼:繪製與線中的一個因子和數據點的曲線圖只爲R中的另一個因素

graph

ggplot(data=d, aes(x=Characteristic, y=Rating, group=Factor, colour=Factor)) + 
geom_point() + 
geom_line()+ 
ylim(0,10)+ 
xlab("Characteristics") + theme(text = element_text(size=20)) 

我只希望使用線連接兩個因素(AH)的數據點,其他因素只需要數據點(不連線)。 我該怎麼做?

我的數據是這樣的形式:

 Factor Characteristic Rating 
1  A    OA  7 
2  B    OA  6 
3  C    OA  5 
4  D    OA  4 
5  E    OA  5 
6  F    OA  6 
7  G    OA  7 
8  H    OA  1 
9  A    HS  7 
10  B    HS  2 
11  C    HS  5 

回答

3

添加標識符到您的數據幀與ifelse,並過濾您的數據dplyr

d$lc <- ifelse(d$Factor %in% c("A", "H"), "line", "point") 

ggplot(data=d, aes(x=Characteristic, y=Rating, group=Factor, colour=Factor)) + 
geom_point() + 
geom_line(data=filter(d, d$lc == "line"), aes(x=Characteristic, y=Rating, group=Factor, colour=Factor)) 

應該做的伎倆。

+1

也許我應該把這個問題作爲一個單獨的問題,但是我怎樣才能重新排列圖例? 它目前是按字母順序的 - 但是有沒有一種方法可以根據因子「HS」的等級對圖例進行重新排序? (即G,A,H等等將是圖例的順序) – lily23

+1

@ lily23用函數factor來修改'levels'的順序。 – 2015-12-03 04:45:51

+1

Thanks @Pascal - 這是我用來做這件事的工作: d $ Factor < - Factor(d $ Factor,levels = c(「G」,「A」,「H」,「F」,「C」 ,「D」,「B」,「E」),標籤= c(「G」,「A」,「H」,「F」,「C」,「D」,「B」 ) – lily23

相關問題