2016-07-06 110 views
0

我正在嘗試使用ggplotgeom_line創建坡度圖。我希望數據子集中的行(例如高於0.5)是紅色的,小於0.5的是另一種顏色。這裏是我的代碼:R坡度圖geom_line顏色ggplot2

library(ggplot2) 
library(reshape2) 
mydata <- read.csv("testset.csv") 
mydatam = melt(mydata) 

線圖:

ggplot(mydatam, aes(factor(variable), value, group = Gene, label = Gene)) + 
     geom_line(col='red') 
在這種情況下

,所有的線是紅色的。我如何爲那些具有可變低值> 0.5(其中有5個,aa,ac,ba,bc和bd)以及其餘黑線的「基因」做出紅線?

mydatam看起來是這樣的:

Gene variable value 
1 aa Control 0.0 
2 ab Control 0.0 
3 ac Control 0.0 
4 ad Control 0.0 
5 ba Control 0.0 
6 bb Control 0.0 
7 bc Control 0.0 
8 bd Control 0.0 
9 aa  Low 0.6 
10 ab  Low 0.2 
11 ac  Low 0.8 
12 ad  Low 0.1 
13 ba  Low 0.7 
14 bb  Low 0.3 
15 bc  Low 0.8 
16 bd  Low 1.2 
17 aa  High -0.6 
18 ab  High 1.6 
19 ac  High 2.1 
20 ad  High 0.7 
21 ba  High -1.2 
22 bb  High -0.7 
23 bc  High -0.8 
24 bd  High 0.6 

回答

0

你可能要在其中創建該數據的新變量。這裏有一種方法:

## Load dplyr package for data manipulation 
library("dplyr") 

## Genes where "Low" value is >0.5 
genes <- mydatam[mydatam$variable == "Low" & mydatam$value > 0.5, "Gene"] 

## Add new column 
newdat <- mutate(mydatam, newval = ifelse(Gene %in% genes, ">0.5", "<=0.5")) 

現在,我們可以創建一個使用newval設置顏色的情節。

## Color lines based on `newval` column 
ggplot(newdat, aes(factor(variable), value, group = Gene, label = Gene)) + 
    geom_line(aes(color = newval)) + 
    scale_color_manual(values = c("#000000", "#FF0000"))