Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用ggplot2';s geom_dotplot()具有对称间隔和分离的点_R_Ggplot2 - Fatal编程技术网

R 如何使用ggplot2';s geom_dotplot()具有对称间隔和分离的点

R 如何使用ggplot2';s geom_dotplot()具有对称间隔和分离的点,r,ggplot2,R,Ggplot2,当stackratio大于1时,在geom_dotplot中对称放置点时出现问题。当堆叠比率=1时,圆点对称放置在记号标记上方。使用stackratio>1,点向左移动。有没有一种方法可以在点之间创造空间的同时保持点的对称性 library(ggplot2) data <- data.frame(x = rep(seq(2018, 2021, 1), 15), y = sample(seq(3, 5, .125), 60,

stackratio
大于1时,在
geom_dotplot
中对称放置点时出现问题。当堆叠比率=1时,圆点对称放置在记号标记上方。使用
stackratio>1
,点向左移动。有没有一种方法可以在点之间创造空间的同时保持点的对称性

library(ggplot2)

data <- data.frame(x = rep(seq(2018, 2021, 1), 15), 
                   y = sample(seq(3, 5, .125), 60, 
                   replace = T))

ggplot(data, aes(factor(x), y)) +
  geom_dotplot(binaxis = "y", stackdir = "center", stackratio = 1)

ggplot(data, aes(factor(x), y)) +
  geom_dotplot(binaxis = "y", stackdir = "center", stackratio = 2)
库(ggplot2)

数据问题似乎出在函数中。它计算每个点的偏移量

xpos <- xmm + dotdiamm * (x$stackposition * x$stackratio + (1 - x$stackratio) / 2)
然后用样本数据进行测试,我得到

ggplot(data, aes(factor(x), y)) +
  geom_dotplot(binaxis = "y", stackdir = "center", stackratio = 1)


也许这算是一个bug报告?不确定还有什么要测试的

,而且当使用数字<1时,情况似乎会向右移动。我不记得这是否是它一直以来的工作方式,或者这是一个新的东西。看起来这是一个bug。我在下面提供了一些细节,这可能是值得的。请随意包含我在下面提供的详细信息。
ggplot(data, aes(factor(x), y)) +
  geom_dotplot(binaxis = "y", stackdir = "center", stackratio = 1)
ggplot(data, aes(factor(x), y)) +
  geom_dotplot(binaxis = "y", stackdir = "center", stackratio = .5)
ggplot(data, aes(factor(x), y)) +
  geom_dotplot(binaxis = "y", stackdir = "center", stackratio = 2)