Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R绘制分类数据_R_Plot_Ggplot2_Bioinformatics - Fatal编程技术网

使用R绘制分类数据

使用R绘制分类数据,r,plot,ggplot2,bioinformatics,R,Plot,Ggplot2,Bioinformatics,我有一个蛋白质名称列表(P1,P2,…,Pn),根据三种实验条件(Exp1,Exp2和Exp3)的测量,它们被分为三种不同的表达水平高(H),中(M)和低(L)。 我想画一个图,如图的底部所示,左边的蛋白质名称和沿着顶部和高、中、低类别的实验名称分别用红色、蓝色和绿色表示 我是R的新手,我非常感谢您的帮助 提前感谢您可以使用如下格式的数据创建文件(以制表符分隔): 并使用以下命令抓取并绘制它们: mat这里有一种方法,它使用了ggplot2和restrape2包的一些魔力 首先,按照您描述的格

我有一个蛋白质名称列表(P1,P2,…,Pn),根据三种实验条件(Exp1,Exp2和Exp3)的测量,它们被分为三种不同的表达水平高(H),中(M)和低(L)。

我想画一个图,如图的底部所示,左边的蛋白质名称和沿着顶部和高、中、低类别的实验名称分别用红色、蓝色和绿色表示

我是R的新手,我非常感谢您的帮助


提前感谢

您可以使用如下格式的数据创建文件(以制表符分隔):

并使用以下命令抓取并绘制它们:


mat这里有一种方法,它使用了
ggplot2
restrape2
包的一些魔力

首先,按照您描述的格式重新创建数据:

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"))
然后,使用
melt()
将数据从宽格式转换为高格式。id变量是“P”,我们告诉函数将“变量”重命名为“Exp”:

最后,我们准备绘制您的数据:

ggplot(mdf, aes(x=Exp, y=P, colour=value)) + 
    geom_point(size=3) + 
    scale_colour_manual(value=c("red", "green", "blue")) +
    xlab("") + 
    ylab("")

使用with()比使用attach()更安全:with(mat,plot(pv~exp,col=val))您使用的是公式,因此请提供参数数据,而不是with()或attach()。
library(reshape2)
library(ggplot2)
mdf <- melt(df, id.vars="P", variable="Exp")
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("")