2014-12-08 91 views
8

我想在ggplot2中創建一個線條圖,它將某些變量的不同線條樣式和其他變量的不同標記組合在一起。ggplot線條圖具有不同的線條樣式和標記

示例1使用不同的線條樣式繪製每個變量,示例2使用不同的標記繪製每個變量,而示例3使用不同的線條和標記繪製每個變量。

我試圖用不同的線條樣式(實線,虛線)來繪製X2和X3,然後將X4和X5用不同的標記(圓形,方形,任何)作爲實線。

有沒有辦法做到這一點?

library(ggplot2) 
library(reshape2) 

set.seed <- 1 
df <- data.frame(cbind(seq(1,10,1),matrix(rnorm(100,1,20), 10, 4))) 
d <- melt(df, id="X1") 

# Example 1: different line styles 
ggplot(d, aes(x=X1, y=value, color=variable)) + 
    geom_line(aes(linetype=variable), size=1) 

# Example 2: different markers for each line 
ggplot(d, aes(x=X1, y=value, color=variable)) + 
    geom_line() + geom_point(aes(shape=variable, size=4)) 

# Example 3: differnt line styles & different markers (You see this graph below) 
ggplot(d, aes(x=X1, y=value, color=variable)) + 
    geom_line(aes(linetype=variable), size=1) + 
    geom_point(aes(shape=variable, size=4)) 

enter image description here

+0

作爲第一個問題,這是公寫有一個重複的樣品。幹得好!:) – jazzurro 2014-12-08 02:24:40

回答

7

這是一種方法。您可以使用另外兩個功能來控制形狀和線條類型。 scale_linetype_manual允許您手動分配線型。同樣,scale_shape_manual可讓您手動指定您想要的任何形狀。

# Example 3: differnt line styles & different markers 
ggplot(d, aes(x=X1, y=value, color=variable)) + 
geom_line(aes(linetype=variable), size=1) + 
geom_point(aes(shape=variable, size=4)) + 
scale_linetype_manual(values = c(1,2,1,1)) + 
scale_shape_manual(values=c(0,1,2,3)) 

enter image description here

+0

太棒了!非常感謝你的幫助。我顯然還在學習ggplot2的所有功能。 – learnmorer 2014-12-08 02:49:26

+0

@learnmorer快樂。 :)我每天仍在學習ggplot2! – jazzurro 2014-12-08 02:52:59

+1

我認爲geom_point行有錯誤。大小應該在方括號之外:'geom_point(aes(shape = variable),size = 4)' – luchonacho 2016-12-14 16:51:57

相關問題