R ggplot2 - 使用行按颜色分组的颜色图

时间:2014-04-06 02:20:21

标签: r ggplot2 colors

我正在尝试qplot密度数据。我的表格如下:

Element1  Element2 Element2 Element4 Element5 Element5
1         1        1        1        1        1 
3         5        9        5        2        1

我只想按名称列着色,但当我使用read.table时,R会自动将我的名字改为Element2.1,Element2.2,Element5.1 Elemenet5.2。

我的代码:

 dataT <- read.table("file.csv", header=T, sep="\t")
 dataT.long = melt.data.frame(data=dataT)
 qplot(value, color=variable, data=dataT.long, geom='density', xlim='0.8')+
 guides(col = guide_legend(ncol = 4, byrow = TRUE, keywidth = 0.5, keyheight = 0.5))

编辑:

如果我有这个表,如何按组颜色?

Element1  Element2 Element3 Element4 Element5 Element6
Group1    Group2   Group2   Group3   Group4   Group4
1         1        1        1        1        1 
3         5        9        5        2        1

1 个答案:

答案 0 :(得分:1)

阅读您的编辑,我猜测具有不同名称的不同列中的值应该是相同的列 - 即,两个Element5列应该具有相同的颜色。在这种情况下,我只是去掉R附加到末尾的.x,以便区分变量名。

# Read and melt data
dataT <- read.table("file.csv", header=T, sep="\t")
dataT.long = melt(data=dataT)

# Remove the decimal dot and the numbers behind it
dataT.long$variable = strtrim(dataT.long$variable, 8) # this will delete everything after the 8th character

# So it looks like this:
#    element value
#1  Element1     1
#2  Element1     3
#3  Element2     1
#4  Element2     5
#5  Element2     1
#6  Element2     9
#7  Element4     1
#8  Element4     5
#9  Element5     1
#10 Element5     2
#11 Element5     1
#12 Element5     1

# Plot
qplot(value, color = variable, data = dataT.long, geom = 'density', xlim = '0.8') +
  guides(col = guide_legend(ncol = 4, byrow = TRUE, keywidth = 0.5, 
                            keyheight = 0.5))