首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R包蜂箱产生相同的x坐标。

R包蜂箱产生相同的x坐标。
EN

Stack Overflow用户
提问于 2018-05-16 13:04:37
回答 1查看 115关注 0票数 1

我正在编写一个脚本,在这个脚本中,我需要为一个温暖的地块计算坐标,而不需要立即绘图。当我使用蜂巢时,我得到的x坐标不是成群的,大致相同的值:

但是,如果我再次生成同样的情节,它就会正确地蜂拥而至:

而且,如果我使用dev.off(),我再次没有蜂拥而至:

我使用的代码:

代码语言:javascript
复制
n <- 250
df = data.frame(x = floor(runif(n, 0, 5)),
                y = rnorm(n = n, mean = 500, sd = 100))

#Plot 1:
A = with(df, beeswarm(y ~ x, do.plot = F))
plot(x = A$x, y=A$y)

#Plot 2:
A = with(df, beeswarm(y ~ x, do.plot = F))
plot(x = A$x, y=A$y)

dev.off()

#Plot 3:
A = with(df, beeswarm(y ~ x, do.plot = F))
plot(x = A$x, y=A$y)

在我看来,蜂群似乎使用一些类似于当前的地块参数(或者不管它被称为什么)来进行蜂群,因此,当一个情节没有显示时,就会窒息。我尝试使用蜂巢的参数,如间隔、中断、围栏、corralWidth、优先级和xlim,但这并没有什么区别。FYI:如果do.plot设置为真,那么x坐标是正确计算的,但这是没有帮助的,因为我不想立即绘图。

任何提示或评论都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 13:18:31

您是对的;蜂巢使用当前的绘图参数来计算在点之间留下的空间。设置"do.plot=FALSE“似乎不像人们所期望的那样,我也不知道为什么我会包含这个参数。

如果要手动控制参数,可以使用函数swarmxswarmy。这些函数必须分别应用于每个组。

代码语言:javascript
复制
dfsplitswarmed <- by(df, df$x, function(aa) swarmx(aa$x, aa$y, xsize = 0.075, ysize = 7.5, cex = 1, log = ""))

dfswarmed <- do.call(rbind, dfsplitswarmed)

plot(dfswarmed)

在本例中,我根据这个特定数据集的默认函数设置xsize和ysize值。如果您可以找到一组xsize/ysize值来处理您的数据,则此方法可能适用于您。

否则,一种更简单的方法可能是离开do.plot=TRUE,然后放弃这些情节。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50371760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档