当我在R中生成直方图并设置代码时:

hist(newDF2$Gaps.Res., breaks = 10, main=title1,xlab='Gaps/Residue',ylab='Count',xlim=c(0,0.5))

如果我更改输入数据,我会得到不一致的分箱,如以下图所示,其中第一个不正确,有25个分箱,但第二个正确,有10个分箱,如代码中指定的.

enter image description here

enter image description here

它为什么要这样做?我如何才能使垃圾桶的数量保持一致?

推荐答案

您提供了一个值作为中断;您需要提供一个向量来表示您希望中断是什么.您的问题不包括可重现的数据,但以下内容可能会起作用:

hist(newDF2$Gaps.Res., breaks = seq(0, 0.5, 0.1), 
     main = title1, xlab = 'Gaps/Residue', 
     ylab = 'Count', xlim = c(0, 0.5))

这是因为如果您提供单个值,R会将其解释为直方图的单元格数,但正如文档所述:

...这个数字只是一个建议;因为断点将被设置为pretty个值

为了进行演示,假设您拥有以下数据:

set.seed(12345)
a <- rpois(100, lambda = 4)
b <- rpois(100, lambda = 2)

打印将与(所需输出)的仓位大小相同:

par(mfrow = c(1,2))
### Vecor of integers
hist(a, breaks = seq(0, 10, 1), 
     main = "Test A [breaks = seq(0, 10, 1)]", 
     xlab = 'Gaps/Residue', ylab = 'Count', xlim = c(0, 10))

hist(b, breaks = seq(0, 10, 1), 
     main = "Test B [breaks = seq(0, 10, 1)]",
     xlab = 'Gaps/Residue', ylab = 'Count', xlim = c(0, 10))

enter image description here

但是,如果您只有一个值,您将看到您面临的问题,如文档中所概述的:

# Single value
hist(a, breaks = 10, 
     main = "Test A [breaks = 10]",
     xlab = 'Gaps/Residue', ylab = 'Count', xlim = c(0, 10))

hist(b, breaks = 10, 
     main = "Test B [breaks = 10]",
     xlab = 'Gaps/Residue', ylab = 'Count', xlim = c(0, 10))

enter image description here

R相关问答推荐

如何对数据集进行逆向工程?

在for循环中转换rabrame

计算具有奇数日期的运行金额

bslib::card_header中的shine::downloadButton,图标而不是文本

仅在Facet_WRAP()中的相应方面包含geom_abline()

如何在科学记数法中显示因子

R如何计算现有行的总和以添加新的数据行

随机森林的带Shap值的蜂群图

如何移除GGPlot中超出与面相交的任何格网像元

如果COLSUM为>;0,则COLNAME为向量

扩展R中包含列表的数据框

R中治疗序列的相对时间指数

从线的交点创建面

网络抓取新闻标题和时间

计算多变量的加权和

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用

通过匹配另一个表(查找表)中的列值来填充数据表,并在另一个变量上进行内插

了解nchar在列表上的意外行为

在具有条件的循环中添加行

用逗号拆分字符串,并删除一些字符