首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理dotPlot中的中断

处理dotPlot中的中断
EN

Stack Overflow用户
提问于 2015-09-02 08:20:13
回答 1查看 218关注 0票数 1

当你有严重的异常值时,你如何处理dotPlot的中断:

我不能将数据转换为日志或类似的东西。

代码语言:javascript
复制
 library(mosaic)
n=300
r =c(seq(1,15,1))
binwidth = 1
outliers= c(100,400,800,700)
#outliers= c(15,14,3,5)
dat = c(sample(r ,n= 1,size = n, replace = TRUE),outliers)
quantile(dat)[4]+1.5* IQR(dat)
n=n+4
brks = c(seq(0,sd(dat)*2,binwidth),tail(seq(0,sd(dat)*2,binwidth),1)+binwidth,tail(seq(0, max(dat),binwidth),1)+binwidth)
d = data.frame( x = dat, color = c(rep("red",n/2), rep("green",n/2)))
dotPlot(d$x,  breaks = seq(min(d$x)-binwidth,max(d$x)+binwidth,binwidth), cex = .5)

If you run that code you will see 4 outliers that make the plot unreadable. How would you deal with that?

现在,间隔是从d$x的最小值到最大值,但我认为应该删除一些空的存储箱。您会使用什么逻辑来删除这些存储箱?超过2个标准差的箱体是空的,然后删除它们?你能给出示例代码吗?

您是否知道如何在不使用dotplot()或dotPlot()的情况下创建自己的点图。

我在下面的"dat“数据框中有数据。

代码语言:javascript
复制
##### HERE CAN I CREATE MY OWN DOT PLOT?
library(qdapRegex)
binwidth = 1
t = table(cut(dat, seq(0,max(dat)+1,binwidth)  ))
r_names =rownames(t)[t>0]
r_names = as.numeric(rm_between(r_names, ',', ']', extract=TRUE))
dat =data.frame(bin = r_names, data = t[t>0])
dat  #can you turn this into a dot plot where the x-axis ONLY consists of the bin column. i.e. no space between 15 and 100?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-09-02 11:56:06

这是比我的评论更完整的答案:

代码语言:javascript
复制
png()
dotPlot(log(d$x, 10), xlab=expression(Log[10](X)), scales=list(x=list(labels=10^(0:5)) ))
dev.off()

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

https://stackoverflow.com/questions/32342834

复制
相关文章

相似问题

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