2017-04-19 71 views
4

我想创建一个plotly箱线图中的R,这并不表明了异常,我发现在plotly官方页面此链接: https://plot.ly/ggplot2/box-plots/#outliers从箱线图中删除离群plotly

library(plotly) 
set.seed(123) 

df <- diamonds[sample(1:nrow(diamonds), size = 1000),] 

p <- ggplot(df, aes(cut, price, fill = cut)) + 
geom_boxplot(outlier.shape = NA) + 
ggtitle("Ignore outliers in ggplot2") 

# Need to modify the plotly object and make outlier points have opacity equal 
to 0 
p <- plotly_build(p) 

p$data <- lapply(p$data, FUN = function(x){ 
x$marker = list(opacity = 0) 
return(x) 
}) 


# Create a shareable link to your chart 
# Set up API credentials: https://plot.ly/r/getting-started 
chart_link = plotly_POST(p, filename="geom_boxplot/outliers") 
chart_link 

的问题是,在他们的网页和我的控制台中,异常值仍在显示。 enter image description here 这是一种错误吗?

+0

随着时间的推移,错误可能会得到修复。 'geom_boxplot(outlier.shape = NA)'给我产生了一个没有异常值的盒子图。 – Ufos

回答

1

看起来像一个错字。也许这个例子没有被更新来解释对象结构的一些变化。在致电p <- plotly_build(p)后,我们观察到没有p$data,但有p$x$data。因此,改变lapply调用以下:

p$x$data <- lapply(p$x$data, FUN = function(x){ 
x$marker = list(opacity = 0) 
return(x) 
}) 

使一切工作按预期:

enter image description here

+0

这不仅仅使离群值变得透明,而且实际上所有点都是透明的。通过geom_jitter图层,不出现任何点。关于异常值设置,我只能找到'p $ x $ data $ marker $ outliercolor',但不能按预期工作。你有什么想法,如果我想看其他点? –