2016-06-24 22 views
0

假設一個2x2矩陣,其中輸入矩陣中有兩行(每個表示一個technique),並且每行都有兩列。現在我想繪製一個ggplot。在用於ggplot設定線顏色的典型方法中,我們設置了color沿一個維度(即,列)和linetype變化到沿着另一維度上變化(即行):如何爲ggplot中的某個組應用手動着色

geom_line(aes(color=m, linetype=techniques)) 

是有辦法對於屬於其中一個組的所有行強制使用1種顏色,即黑色?例如,是否有辦法做類似的事情:

### do this first 
geom_line(aes(color=m, linetype=techniques)) 

###and then change the colors for one of the groups, i.e. for techniques1 
scale_color_manual(values=c("black", "black")) 

上述解決方案改變它的兩個組(技術1和技術2)。

+0

您可以顯示一些假數據?如果您可以通過單獨的列設置顏色和線型,ggplot會更容易。或者將原始的df分成兩個單獨的dfs,繪製單獨的ggplot圖層,手動調整那裏的美學。 – Nate

+0

你應該可以通過在'aes'中不指定'color'來強迫黑色 – theArun

+0

@Arun如何強制黑色到一個組? – user3639557

回答

0

方法1

df <- mtcars 
ggplot(data=df,aes(x=mpg,y=hp)) +geom_line(colour = "black") +geom_line(aes(x=mpg,y=cyl),colour = "black") 

enter image description here

或方法2

df <- mtcars 
df1 <- df[,-2,-3] 
df2 <- df[,-4,-5] 
ggplot(data=df1,aes(x=mpg,y=hp)) +geom_line(colour = "black")+geom_line(data=df2,aes(x=mpg, y = cyl), colour="black") 

enter image description here

我知道y軸是相同的單元中的不..但此只是爲了展示你是如何做到的。

0

您可能需要創建一個新變量來控制顏色,例如

df$newColor <- paste(df$techniques, df$m, sep = "_") 
df$newColor[df$techniques == "1"] <- "technique 1" 

,或者如果你有你想要顏色的更多的技術,但沒有單獨命名:

df$newColor <- df$techniques 
df$newColor[df$techniques == "1"] <- "technique 1" 

然後使用該newColor列作爲你的顏色可變