2012-02-24 46 views
4

是否可以在同一圖上繪製兩組數據,但是每組使用不同的調色板?如何在ggplot2中的不同圖層上使用不同的調色板?

testdf <- data.frame(x = rnorm(100), 
        y1 = rnorm(100, mean = 0, sd = 1), 
        y2 = rnorm(100, mean = 10, sd = 1), 
        yc = rnorm(100, mean = 0, sd = 3)) 
ggplot(testdf, aes(x, y1, colour = yc)) + geom_point() + 
    geom_point(aes(y = y2)) 

我想看到的是一組數據,說y1,在藍色(顏色由yc設置),以及紅色的另一組(再次通過顏色設置yc)。

圖例應該顯示2個色標,一個用藍色表示,另一個用紅色表示。

感謝您的建議。

回答

3

如果您將「blues」和「reds」翻譯成不同的透明度,那麼它不會違背ggplot的理念。所以,使用Thierry's Moltenversion of the data set

ggplot(Molten, aes(x, value, colour = variable, alpha = yc)) + geom_point() 

應該這樣做。

+0

太棒了!謝謝你的幫助! – drbv 2012-02-24 16:38:23

4

這對ggplot2不可行。我認爲它違背了ggplot2的哲學,因爲它使情節的交互複雜化。

另一種選擇是使用不同的形狀來分離點。

testdf <- data.frame(x = rnorm(100), 
         y1 = rnorm(100, mean = 0, sd = 1), 
         y2 = rnorm(100, mean = 10, sd = 1), 
         yc = rnorm(100, mean = 0, sd = 3)) 
Molten <- melt(testdf, id.vars = c("x", "yc")) 
ggplot(Molten, aes(x, value, colour = yc, shape = variable)) + geom_point() 
+0

謝謝Thierry,我喜歡這個造型! – drbv 2012-02-24 16:36:41

相關問題