2013-07-29 61 views
0

我要繪製一個很簡單的線圖(圖表時間序列,實際上)。我唯一希望的是線路出現不黑,但在默認色輪是ggplot2用途(如更換默認的「黑」 ---這可能是某處指定---用的第一種顏色的第一顏色默認的ggplot2調色板)。始終第一的默認顏色,而不是黑色使用GGPLOT2

我只有拿出一個非雅版,我手動指定第一色(hcl(h=15, l=65, c=100))的HCL值 - 由於信息在這個答案:https://stackoverflow.com/a/8197703/1477035

是不是有一個更優雅的方式?我也想過,包括一個因素變量,它只有一個值,然後指定colour=as.factor(MyFactorVariable),但這在某種程度上攪亂na.rm = T(因爲我需要在來港出現行差距)。

數據樣本:

structure(list(Date = structure(c(15701, 15702, 15703, 15704, 
15705, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 
15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 
15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 
15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740 
), class = "Date"), Additions = c(398L, 212L, 171L, 133L, 124L, 
99L, 105L, 103L, 99L, 101L, 104L, 102L, 99L, 70L, 76L, 95L, 51L, 
76L, 76L, 65L, 73L, 84L, 71L, 82L, 47L, 78L, 65L, 73L, 79L, 64L, 
45L, NA, NA, NA, NA, NA, NA, NA, 149L, 198L)), .Names = c("Date", 
"Additions"), row.names = c(NA, 40L), class = "data.frame") 

代碼:

p <- ggplot(data, aes(Date, Additions), na.rm = T) 
p <- p + geom_line(colour=hcl(h=15, l=65, c=100)) + scale_x_date(labels = date_format("%B")) 
p <- p + xlab("Date of addition") + ylab("Daily additions to user database") 
p <- p + theme_minimal() + theme(plot.margin = unit(c(1,1,1,1), "cm"), 
         axis.title.x = element_text(vjust=-1), 
         axis.title.y = element_text(angle=90, vjust=0), 
         panel.grid.minor = element_blank(), 
         plot.background = element_rect(fill = rgb(0.99,0.99,0.99)) 
         ) 

p 

這給:

output

+0

您是否嘗試過'geom_line(color =「red」)'或其他黑色以外的值..? PS:這會是很好,如果你提供'dput(your_data)'輸出 – Arun

+0

我已經試過這一點,但它肯定不是在'顏色=鹽酸(H = 15,L = 65,C = 100)'有所改善,但只是改變了我不想要的刺眼的紅色。我添加了數據,感謝提示。 – wnstnsmth

+0

你所要求的是讓它根據自己的喜好自己選擇一種顏色......這怎麼可能?如果你希望你選擇的顏色,你可以使用[IWantHue(http://tools.medialab.sciences-po.fr/iwanthue/)來獲得十六進制格式您想要的顏色,只是把它添加到顏色。如果你想基於一個因素列的水平多種顏色,那麼你可以做:'geom_line(AES(顏色= my_factor_column))'。 – Arun

回答

1

足夠這優雅?

ggdefault_cols <- function(n) hcl(h=seq(15, 375-360/n, length=n)%%360, 
            c=100, l=65) 

#First 4 ggplot default colours: 
ggdefault_cols(4) 
#[1] "#F8766D" "#7CAE00" "#00BFC4" "#C77CFF" 

ggplot(data, aes(Date, Additions), na.rm = T) + 
     geom_line(colour=ggdefault_cols(1)) 
相關問題