2013-10-14 141 views
0

我真的很新ggplot。我不知道這個問題有一個快速的答案格式y軸顏色條

我被要求複製一個Y軸顯示數據顯示爲多線圖的值類別的圖形。超鏈接中的圖是在電子表格中手動完成的。 我試圖產生與y規模排列的彩色標籤

original plot & data 到目前爲止,我已經成功地再現線圖,此代碼

ggplot(p2r_m,aes(x=time,y=value,group=variable,colour=variable)) + 
geom_line() +         
geom_point(size=4,shape=21,fill="white") 

感謝

+1

你可以發佈數據的可複製版本:'dput(p2r_m)'。所以用戶不需要登錄Google文檔來訪問電子表格,然後將其強制轉換爲您已有的長格式(假設使用'melt'創建的)太多的假設和太多的工作,因爲您需要免費的代碼。 – mnel

回答

4

這是一個可能性, - 您可以製作geom_text的標籤,並在任何地方使用geom_rect。如果我們所要求的數據的數據幀:

labels <- data.frame(id = c("Very poor", "Poor", "Moderate", "Good", "Very good"), 
    min = seq(0, 80, 20), max = seq(20, 100, 20)) 

然後,您需要將您的xy映射到每個geom(或至少我不知道的避免這種的方式):

base <- ggplot(p2r.m) + 
    geom_line(aes(x=time,y=value,group=variable,colour=variable)) + 
    geom_point(aes(x=time,y=value), size=4,shape=21,fill="white") 

然後引用標籤數據:

base + geom_rect(data = labels, aes(ymin = min, ymax = max,xmin = 0, xmax = 0.5, fill = id)) + 
    geom_text(data = labels, aes(x = 0.25, y = (min + max)/2, label = id), angle = 90) + 
    guides(fill = F) 

enter image description here

順便說一句,您的數據似乎不符合您發佈的情節。