使用 R 绘制分类数据图
我有一个蛋白质名称列表(P1,P2,...,Pn),它们被分类为三种不同的表达水平高(H),中(M)和低(L),在三种实验条件下测量(Exp1) 、Exp2 和 Exp3)。
我希望绘制如图底部所示的图,其中包含蛋白质的名称左边的实验名称和高、中、低类别分别用红色、蓝色和绿色表示。
我是 R 新手,非常感谢任何帮助。
提前致谢
I've a list of protein names(P1,P2,...,Pn) and they are categorized to three different expression levels High(H), medium(M) and Low(L) as measured in three experimental conditions (Exp1,Exp2, and Exp3).
I wish to make a plot as shown in the bottom part of the figure, with the name of the proteins at the left and name of experiments along the top and high, medium and low categories are indicated by Red,blue and green respectively.
I'm new to R, I would much appreciate any help.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以创建一个具有如下格式数据的文件(制表符分隔):
并使用以下命令来抓取并绘制它们:
mat <- read.table(file.choose(),header=T)
# 将文件读入内存attach(mat)
# 将标头名称映射到变量名称plot(pv~exp,col=val)
# 绘制类别相互对比并使用 val (H,M,L) 作为颜色数组。 R 会自行将这些值分配给颜色。您还可以使用 val 数组创建一个颜色数组,将 (H,M,L) 转换为 (蓝色,红色,绿色)...但还有其他文档。You can create a file with data formatted like this (tab delimited):
And used the following commands to grab and plot them:
mat <- read.table(file.choose(),header=T)
# read the file into memoryattach(mat)
# map the header names to variable namesplot(pv~exp,col=val)
# plot the categories against each other and useval (H,M,L)
as the color array. R will assign those values to colors on its own. You can also create a color array using the val array to translate (H,M,L) to (Blue,Red,Green)... but there is other documentation out there for that.这是一种使用 ggplot2 和 reshape2 包的一些魔力的方法。
首先,以您描述的格式重新创建数据:
接下来,加载附加包:
然后,使用
melt()
将数据从宽格式转换为高格式。 id 变量是“P”,我们告诉函数将“变量”重命名为“Exp”:因为 L - M - H 具有语义顺序,所以我们使用
的
通知 R 此顺序:ordered
参数Factor()最后,我们准备绘制您的数据:
Here is an approach that uses some of the magic of the
ggplot2
andreshape2
packages.First, recreate the data in the format you described:
Next, load the add-on packages:
Then, use
melt()
to convert your data from wide format to tall format. The id variable is "P", and we tell the function to rename the "variable" to "Exp":Because L - M - H has semantic order, we use the
ordered
parameter offactor()
to inform R of this order:Finally, we are ready to plot your data: