在R ggplot中绘制计数直方图

4

请帮我解决这个问题。我在这里搜索了,但没有得到正确的输出。

我正在尝试在R中绘制此图,以便使用GGplot在单个图中并排绘制3个文件。

我想要的输出(使用Excel绘制)是这样的:

desired histogram

而我使用GGplot得到的输出却是这样的:

ggplot output

我使用的R代码如下:

A1 <- read.table("A1.txt", header = T, sep = "\t")
library(ggplot2)
ggplot(A1, aes(x = count)) + geom_bar()

数据是一个制表符分隔的文件,格式如下:
length  count
26  344776
27  289439
18  673395
28  338146
19  710702
20  928326
21  3491352
22  2724981
23  699007
24  726121
25  472509

长度,可以说只是在y轴上绘制的计数的标签所对应的x轴上的标签。


你不需要一个直方图,你需要一个条形图。尝试使用长度作为x轴,计数作为y轴的条形图。 - Rohit
非常感谢@Rohit。barplot也可以使用。 - CEPHAS
1个回答

5

您需要的是什么?

使用ggplot函数绘制柱状图,其中x轴为长度(以字符串形式给出),y轴为数量(count)。


非常感谢。这个很好用。我怎样才能让X轴上的标签对应每个条形图,比如18、19、20、21等等。现在我拥有的是17.5、20.0、22.5、25.0、27.5。 - CEPHAS
(stat="identity")似乎是我之前编写的代码的主要区别。请问这是什么意思? - CEPHAS
如果您不使用stat参数,它会自动计算数量。当您设置stat="identity"时,基本上是在说“不要计算长度中出现18的次数,而是将计数列视为该值”。 - ozgeneral
1
标签取决于您的长度列。它应该显示完全相同的值。如果您想要整数,可以使用 round - ozgeneral
如果这是你想要的内容,请将其标记为答案。 - ozgeneral
感谢您的评论。我非常清楚标签取决于长度列。如果您查看我在原始帖子中发布的所需图表,每个标签都会打印在相应的条形下方。但是在我现在拥有的图表中,它会在某些间隔处给出标签,而不是所有的条形。对于您使用round获取整数的建议,在代码的哪个位置放置round函数? - CEPHAS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接