具有多个类别的点图 - R

Dot Plots with multiple categories - R

对于可视化数据,我绝对是 R 的新手,所以请多多包涵。

我希望创建七个分类样本的并排点图,其中许多基因表达值与单个基因名称相对应。 mydata.csv 文件如下所示

B27      B28      B30      B31 LTNP5.IFN.1 LTNP5.IFN.2 LTNP5.IL2.1
1 13800.91 13800.91 13800.91 13800.91    13800.91    13800.91    13800.91
2  6552.52  5488.25  3611.63  6552.52     6552.52     6552.52     6552.52
3  3381.70  1533.46  1917.30  2005.85     3611.63     4267.62     5488.25
4  2985.37  1188.62  1051.96  1362.32     2717.68     2985.37     5016.01
5  1917.30  2862.19  2625.29  2493.26     2428.45     2717.68     4583.02
6   990.69   777.97  1269.05  1017.26     5488.25     5488.25     4267.62

我希望每个样本数据都组织在一张图中自己的点图中。此外,如果我能指出个人感兴趣的数据点,那就太好了。

谢谢!

您可以使用基数 R,但您需要先转换为 matrix

dotchart(as.matrix(df))

或者,我们可以转置矩阵,按样本排列:

dotchart(t(as.matrix(df)))

考虑到您的 [toy] 数据存储在名为 a 的数据框中:

library(reshape2)
library(ggplot2)
a$trial<-1:dim(a)[1]  # also, nrow(a)
b<-melt(data = a,varnames  = colnames(a)[1:7],id.vars = "trial")
b$variable<-as.factor(b$variable)
ggplot(b,aes(trial,value))+geom_point()+facet_wrap(~variable)

产生

我们做了什么: 加载所需的库(reshape2 从宽转换为长,ggplot2 转换为绘图); melt将数据转换成长格式(更难阅读,更容易处理),然后用 ggplot 绘图。

我介绍了 trial 指向每个 "run" 每个变量都被测量了,所以我在 variable 的每个级别绘制了 trial vs value . facet_wrap 部分将每个图放入由 variable.

确定的子图区域