【发布时间】:2018-12-14 13:14:04
【问题描述】:
我之前在 Stack Overflow 上看到过有关在直方图中插入轴中断的建议,例如,请参见此处:
Break X Axis in R 和 Put a break in the Y-Axis of a histogram
但是,将这些帖子中提供的代码应用于我的数据已被证明是困难的。我在 64 位 Windows 10 机器上使用 R Studio(版本 3.4.3)。我正在制作直方图来比较与三种鸟类有关的四种觅食行为行为图。
这三个物种由以下首字母表示:“HG”、“GB”和“LB”。使用每只鸟 15 秒 (sec) 的观察单位,为每个受试者收集以下行为图信息:(a.) 啄数,(b.) 吞咽食物的次数,(c.)步伐在 4 个类别中的 1 个中排名:0 = 无,1 = 1-4,2 = 5-10,3 = >10。通过为每个等级分配以下步数来估计平均步行率:1 = 2.5 步,2 = 7.5 步,3 = 15 步,(d.) 静止时间的比例被归为以下四个类别之一:0 =无,1 = 1-5 秒,2 = 6-10 秒,3 = 11-15 秒。通过为每个等级分配以下秒数来估计平均静止时间:1 = 2.5 秒,2 = 7.5 秒,3 = 12.5 秒。数据总计 2,329 次鸟类观测。
三个物种中的每一个的行为数据都作为 R 中的单独数据集存在,标题为“HGbehaviour”、“GBbehaviour”和“LBbehaviour”。我还有一个名为“行为”的完整数据集,其中包含所有三个物种的 2,329 次鸟类观察结果。
我可以为每个物种生成“标准”直方图。例如,对于物种“HG”,以下代码以 R 为基数生成直方图:
attach (HGbehaviour)
hist (Nopecks)
hist (Noswallows)
hist (Nopaces)
hist (Time_stationary)
但是,问题在于尝试比较物种之间的直方图。这至少部分是由于每个物种的观察次数不同(HG n = 1961;GB n = 255;LB n = 113)。
我找到了一种限制 x 和 y 轴的方法,以便将不同物种的直方图与固定轴进行比较,使用以下代码:
hist (Nopecks, xlim = c (0,21), ylim = c (0, 1000))
但我遇到的问题是,对于 HG,有些频率要高得多。这意味着我需要在 y 轴上创建中断。对于某些行为,我可能还需要在 x 轴上休息。
这是我尝试过的一些代码:
gap.barplot (HGbehaviour, gap =c (200, 250)), xlab= "No. pecks",
ytics=c(0,5,10,15,20), ylab = "Frequency",
main = "HG no. pecks"
但是,这会产生错误消息。
我在笔记本电脑前花了两天时间试图解决这个问题,但无济于事。
有人可以建议如何在我的直方图的 x 和 y 轴上产生中断吗?
【问题讨论】:
-
嗨@Brianna,欢迎您。为了解决您的问题,请发送reproducible example。另外,请查看this,了解如何提问。
-
如果你想看看good example。简短,可重现,已解决。
-
这可能是复制和粘贴错误,但
gap.barplot (HGbehaviour, gap =c (200, 250)), xlab= "No. pecks", ytics=c(0,5,10,15,20), ylab = "Frequency", main = "HG no. pecks"行在c (200, 250)后面多了一个不正确的右括号 -
这是一个有趣的问题,但我认为如果您专注于“如何最好地显示这些数据以进行我想要的比较?”,您可能会得到更好的答案。而不是“我如何打破轴”?正如其他人所建议的那样,如果您可以发布一些具有代表性的数据,那么有人可能会提出一个很好的解决方案。