处理dotPlot中断

时间:2015-09-02 00:20:13

标签: r

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

我无法将数据转换为日志或类似内容。

 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"下面的数据框

##### 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?

谢谢。

1 个答案:

答案 0 :(得分:0)

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

png()
dotPlot(log(d$x, 10), xlab=expression(Log[10](X)), scales=list(x=list(labels=10^(0:5)) ))
dev.off()

enter image description here