使用R绘制类别数据

| 我有一个蛋白质名称列表(P1,P2,...,Pn),它们被分类为三种不同的表达水平:高(H),中(M)和低(L),在三种实验条件下进行测量( Exp1,Exp2和Exp3)。 我希望绘制一个如图底部所示的图,左侧是蛋白质的名称,顶部是实验的名称,高,中和低类别分别用红色,蓝色和绿色表示。 我是R的新手,我将不胜感激。 提前致谢     
已邀请:
您可以创建具有以下格式的数据的文件(制表符分隔):
pv   exp  val
1    1    H
2    1    L
3    1    L
4    1    M
1    2    H
2    2    H
3    2    M
4    2    H
1    3    L
2    3    L
3    3    L
4    3    M
并使用以下命令抓取并绘制它们:
mat <- read.table(file.choose(),header=T)
#将文件读入内存
attach(mat)
#将标头名称映射到变量名称
plot(pv~exp,col=val)
#相互绘制类别,并使用
val (H,M,L)
作为颜色阵列。 R会自行将这些值分配给颜色。您还可以使用val数组将(H,M,L)转换为(Blue,Red,Green)来创建颜色数组...但是还有其他文档。     
这是一种使用
ggplot2
reshape2
软件包的魔术的方法。 首先,以您描述的格式重新创建数据:
df <- data.frame(
    P    = paste(\"P\", 1:4, sep=\"\"),
    Exp1 = c(\"L\", \"H\", \"L\", \"M\"),
    Exp2 = c(\"M\", \"M\", \"L\", \"H\"),
    Exp3 = c(\"H\", \"L\", \"L\", \"M\"))
接下来,加载附加软件包:
library(reshape2)
library(ggplot2)
然后,使用
melt()
将数据从宽格式转换为高格式。 id变量为\“ P \”,我们告诉函数将\“ variable \”重命名为\“ Exp \”:
mdf <- melt(df, id.vars=\"P\", variable=\"Exp\")
因为L-M-H具有语义顺序,所以我们使用
factor()
ordered
参数来通知R此顺序:
mdf$value <- factor(mdf$value, levels=c(\"H\", \"M\", \"L\"), ordered=TRUE)
最后,我们准备好绘制您的数据了:
ggplot(mdf, aes(x=Exp, y=P, colour=value)) + 
    geom_point(size=3) + 
    scale_colour_manual(value=c(\"red\", \"green\", \"blue\")) +
    xlab(\"\") + 
    ylab(\"\")
    

要回复问题请先登录注册