2017-07-30 132 views
1

我創建使用GGPLOT2以下情節: enter image description here無法更改線的顏色ggplot

現在我想藍線是紅色的虛線,我希望紅線是一條黑線。我已經使用下面的代碼以產生所述情節:

ggplot(data=SLLN, aes(x=X1, y=X2, group=1)) + 
    geom_line(aes(colour = "Variable name A")) +      
    geom_hline(aes(yintercept=theor_price, colour = "Variable name B")) + 
    geom_point(size=1) +      
    scale_x_log10(breaks = trans_breaks("log10", function(x) 10^x), #make log scale 
    labels = trans_format("log10", math_format(10^.x))) + 
    ylim(175, 250) +       
    scale_colour_hue(name="", l=30) +     
    (lightness=30) 
    scale_shape_manual(values=c(22,21)) +  
    scale_linetype_discrete() + 
    xlab("xlab") + ylab("ylab") + 
    ggtitle("Title name") +  
    theme_bw()+ 
    theme(legend.background = element_rect(fill="transparent"), 
    legend.position=c(.85, .7)) 

當我刪除AES()在geom_line和geom_hline,並改變顏色的自變量爲「黑色」和「紅色」時,線具有色我想要,但它們從傳奇中消失?我如何保持圖像現在的樣子,所以在圖例中,只更改線條的顏色並使水平線虛線?

預先感謝您!

+0

爲了得到一個傳說,你需要顏色映射在'aes'裏面。對於一條虛線來說:'geom_hline(aes(yintercept = 1,color =「變量名稱B」),lty = 2)'。爲了得到你想要的顏色,除去'scale_colour_hue'語句並添加'scale_colour_manual(name =「」,values = c(「black」,「red」))''。 – eipi10

+0

[this SO answer](https://stackoverflow.com/a/44771265/496488)中的討論可能有助於理解將事物放在'aes'內部或外部之間的區別。 – eipi10

回答

1

的AES()函數映射變量的審美屬性不改變geoms的屬性,你必須指定外面那些AES()函數,就像這樣:

ggplot(data=SLLN, aes(x=X1, y=X2, group=1)) + 
     geom_line(aes(colour = "Variable name A")) +      
     geom_hline(aes(yintercept=6, colour = "Variable name B"), linetype="dashed") + 
     scale_color_manual(values = c("black","blue")) + 
     ... (the rest of your code)