在R中制作对数比例直方图

时间:2015-04-05 00:55:26

标签: r plot

我试图在0到1的对数刻度上绘制我的直方图数据。我试过导入我的数据和绘图如下:

allelefreq <- read.table("allelefreqs.txt", header = TRUE)
allelefreq <- sapply(allelefreq, as.numeric) #convert to numbers
hist(allelefreq, xlim = range(0:1))

但是这只是在0处显示一个大的条形图,然后是剩余图形的空白区域,并且显然不是对数刻度。

我也尝试过使用ggplot来做到这一点但是没有成功。问题的一部分可能是我有大量数据,其中包含接近0的非常小的数字,我认为较小的数据库可以帮助解决这个问题,因为它们会分开更多。

我不知道是否可以在直方图上创建非常小的箱子,或者在某个点切割y轴以显示所有内容。但有人知道如何策划这个吗?

我的数据很简单,看起来像这样(虽然有大约10,000个样本):

AlleleFreq
0.001556
0.001985
0.000036
0.000024
0.000036
0.000024
0.001126
0.000012
0.000012
0.000012
0.000012
0.000012
0.000012
0.000012
0.501322

1 个答案:

答案 0 :(得分:2)

以防万一有人回头看这里的答案。这是我用来解决这个问题的代码:

allelefreq <- read.table("allelefreqs.txt", header = TRUE)
hist(log(allelefreq$AlleleFreq), xlim = c(-15,1), breaks=100)