【发布时间】:2017-03-02 10:12:14
【问题描述】:
我有一个数据框,第一列中有几个样本,第二列中有一个因子,有 22 个级别。 head(df) 的示例输出:
Sample Chromosome
1 Sample2 chr10
2 Sample2 chr9
3 Sample3 chr10
4 Sample3 chr20
5 Sample3 chr10
6 Sample1 chr1
由于正常图的数据很多,因此我打算制作每个样本 chr10 分布的热图。例如 Sample2 在 chr10 上出现 2000 次。
我希望 ggplot 可能会接受 chr 因子及其水平作为尺度,但它没有。
这是我尝试过的:
ggplot(GenomereportTrim,aes(Sample,Chromosome))+
geom_tile(aes(fill=Chromosome),color = "white")+
scale_fill_gradient(low = "white",high = "steelblue")
大约有 50 个独特的样本,它们在染色体因子的 22 个级别上有一定的分布。
任何帮助将不胜感激。 谢谢!
【问题讨论】:
-
ggplot(GenomereportTrim,aes(Sample,Chromosome)) + stat_density_2d(geom = "raster", aes(fill = ..density..), contour = FALSE)? -
不幸返回错误:
Computation failed instat_density2d(): bandwidths must be strictly positive -
我不太清楚你想要什么:你想要一个热图,其中一个轴上有样本,另一个轴上有染色体,颜色对应于每个样本中染色体的频率吗?
-
抱歉描述不清楚:我想要一个热图样本 x 染色体,其中颜色(渐变)对应于在给定染色体上发现样本的频率计数。假设样本 1 在 chr1 上被找到 300 次,在 chr3 上被找到 500 次,样本 4 在 chr20 上被找到 500 次,在 chr1 上被找到 50 次,在 chr19 上被找到 600 次。我希望这能让它更清楚。感谢您的帮助!