首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的点图‘binning/分组’

R中的点图‘binning/分组’
EN

Stack Overflow用户
提问于 2022-02-25 19:31:26
回答 1查看 60关注 0票数 -1

我试图在R中创建一个点图,类似于下面的图,其中每个组与其他组明显分开:http://www.sthda.com/english/wiki/ggplot2-dot-plot-quick-start-guide-r-software-and-data-visualization

我所拥有的数据如下所示,其中我有一个要绘制的值,以及一个组列,它应该将数据放入不同的组(1-5) (类似于前面链接中牙痛数据集中的“剂量”列):

这是我目前正在使用的绘图代码:

代码语言:javascript
复制
p<-ggplot(new_df, aes(x=group, y=ploidy)) + 
  geom_dotplot(binaxis='y', stackdir='centerwhole', binpositions = 'bygroup', binwidth = 0.5, position = "dodge", dotsize = 0.2)

ggplot(new_df, aes(x=group, y=ploidy)) + 
  geom_dotplot(binaxis='y', stackdir='centerwhole',
               stackratio=0, dotsize=0.2, stackgroups = TRUE)
p + stat_summary(fun=median, geom="point", shape=18,
                 size=3, color="red")

并返回以下情节:

我怀疑这里的问题是,大多数值位于2-3的范围内,因此它们会溢出到其他的回收箱/组中。

我试着用简单的数据集(如牙痛数据集)重新创建问题,但是这个问题不会在那些较小的数据集中出现。这里有一个指向数据集的链接,因为用小样本数据集重新创建问题不起作用:http://sendanywhe.re/Y5O133EM

如能提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-26 01:49:26

我认为,通过为每个单独的观测使用指定的位置(有时称为“堆叠”),您正在将图表中所分配的空间溢出。相反,您应该“抖动”单个观测在特定分配区域内的位置。抖动,是指在点的位置引入少量的随机性,以避免(大多数情况下)过度绘制。

我将使用R核中的图形来说明这一点,以获取以下虚拟数据。这将重点关注什么是错误,而不是ggplot中的特定编程解决方案,我将让您解决这个问题。

代码语言:javascript
复制
set.seed(2022)
a = round(rnorm(30, 50, 5))
b = round(rnorm(70, 55, 4))
c = round(rnorm(55, 40, 6))
d = round(rnorm(80, 45, 5))
x = c(a,b,c,d)
g = rep(1:4, c(30,70,55,80))


stripchart(x ~ g, meth="jitter", vertical=T, pch=20)

对不起,不允许在此网站上发布图片。希望你能有个主意。

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

https://stackoverflow.com/questions/71270931

复制
相关文章

相似问题

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