2017-05-03 112 views
2

我有這樣如何改變顏色geom_point或線ggplot

data<- structure(list(sample = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("A", 
"B"), class = "factor"), y = c(0.99999652, 0.99626012, 0.94070452, 
0.37332406, 0.57810894, 0.37673758, 0.22784684, 0.35358141, 0.21253558, 
0.17715703, 0.99999652, 0.86403956, 0.64054516, 0.18448824, 0.40362691, 
0.10791682, 0.06985696, 0.07384465, 0.0433271, 0.02875159), time = c(100L, 
150L, 170L, 180L, 190L, 220L, 260L, 270L, 300L, 375L, 100L, 150L, 
170L, 180L, 190L, 220L, 260L, 270L, 300L, 375L), x = c(0.9999965, 
0.9981008, 0.9940164, 1.0842966, 0.9412978, 1.0627907, 0.9135079, 
1.1982235, 0.9194105, 0.9361713, 0.9999965, 1.0494051, 0.9526752, 
1.1594711, 0.9827104, 1.0223711, 1.1419197, 1.0328598, 0.6015229, 
0.3745817)), .Names = c("sample", "y", "time", "x"), class = "data.frame", row.names = c(NA, 
-20L)) 

數據我感興趣的一個打扮的顏色像繪製它的黑色和紅色

我可以繪製它兩個隨機不同的顏色這樣的,但問題是,

ggplot() + 
geom_point(data = data, aes(x = time, y = y, color = sample),size=4) 
如果我要指派的第一個(A)爲黑色,(B),以紅色

。我怎樣才能做到這一點?

回答

4

你可以使用scale_color_manual

ggplot() + 
    geom_point(data = data, aes(x = time, y = y, color = sample),size=4) + 
    scale_color_manual(values = c("A" = "black", "B" = "red")) 

enter image description here


每OP的評論,讓同色線的點,你可以這樣做:

ggplot(data = data, aes(x = time, y = y, color = sample)) + 
    geom_point(size=4) + 
    geom_line(aes(group = sample)) + 
    scale_color_manual(values = c("A" = "black", "B" = "red")) 

enter image description here

+0

如果我想讓geom_line過,我應該只有一次scale_color_manual使用?例如一條紅線和一條黑線 – nik

+0

是的,你會做'scale_color_manual'一次,然後你的'geom_line'看起來像這樣:'geom_line(aes(x = time,y = y,group = sample,顏色=樣品))' –

+0

感謝邁克這是一個很好的解決方案 – nik

0

我會做這樣的(你也可以用十六進制的顏色,而不是紅色,黑色)

data <- data %>% 
    mutate(Color = ifelse(sample == "A", "black", 
       ifelse(sample == "B", "red", "none"))) 

ggplot() + 
    geom_point(data = data, aes(x = time, y = y, color = Color),size=4)+ 
    scale_color_identity() 
+0

這是非常多_not_建議使用ggplot的方式。 – bdemarest

+0

糾正我,如果我錯了,但我相信這裏不需要「填充」審美。 –

+0

Bdemarest我不確定這個大問題是什麼。如果你要批評你,至少可以解釋爲什麼。在我看來,如果我使用數據框來製作一堆不同的圖形,它可以讓我從大量的輸入/指定顏色中解脫出來。 – Knachman