具有多个类别的点图 - R.

时间:2015-09-02 20:48:26

标签: r plot ggplot2 dot

对于可视化数据我绝对是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

我希望将每个样本数据组织在一个图中的自己的点图中。另外,如果我可以指出感兴趣的个别数据点,那将是很好的。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用基数R,但您需要先转换为dotchart(as.matrix(df))

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

dotchart by gene

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

// Write your loop below!


var question = function(answer){
    var dragonHealth = 10;
    var attack = Math.floor(Math.random() * 10 + 1);
    var answer = prompt("Wishest thou to smote a terrible beast?", "verrily");
    if (question === "verrily"){
for (dragonHealth; dragonHealth > 0; dragonHealth - attack){
    console.log("You hit the dragon and he suffered " + attack + "damage!");
    
if (dragonHealth <= 0){
    console.log("You hath smote the dragon forthwith, and merrily celebrated thine victory with a picnic at the beach. (Yes, there were fair maidens in attendance.)");
}
}
}
};
question(answer);

dotchart by sample

答案 1 :(得分:1)

考虑到您的[玩具]数据存储在名为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)

产生

enter image description here

我们做了什么: 已加载必需的库(reshape2可以从宽到长转换为ggplot2到好的情节); melt将数据编入长格式(更难以阅读,更易于处理),然后使用ggplot进行绘制。

我介绍trial指向每个&#34;运行&#34;测量了每个变量,因此我在trial的每个级别上绘制了value vs variablefacet_wrap部分将每个绘图放入由variable确定的子绘图区域。