2017-04-19 8 views
4

Ich versuche, ein plotly boxplot in R zu erstellen, die die Ausreißer zeigen tut, und ich fand diesen Link in der offiziellen Seite von plotly: https://plot.ly/ggplot2/box-plots/#outliersEntfernen von Ausreißern aus boxplot und 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 

Das Problem ist, dass Auf ihrer Webseite und in meiner Konsole werden immer noch Ausreißer angezeigt. enter image description here Ist das eine Art Bug?

+0

Wie die Zeit vergeht, Fehler wahrscheinlich repariert. 'geom_boxplot (outlier.shape = NA)' erzeugt für mich ein Box-Plot ohne Ausreißer. – Ufos

Antwort

1

Scheint wie ein Tippfehler. Möglicherweise wurde das Beispiel nicht aktualisiert, um einige Änderungen in der Objektstruktur zu berücksichtigen. Nach dem Aufruf p <- plotly_build(p), beobachten wir, dass es keine p$data gibt, aber es gibt p$x$data. Also, die Änderung der lapply Aufruf wie folgt:

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

macht alles wie vorgesehen:

enter image description here

+0

Dies macht nicht nur Ausreißer transparent, sondern tatsächlich alle Punkte transparent. Mit einer geom_jitter-Ebene werden keine Punkte angezeigt. Ich konnte "p $ x $ data $ marker $ outliercolor" nur in Bezug auf Ausreißereinstellungen finden, funktioniert aber nicht wie erwartet. Hast du eine Idee, wenn ich die anderen Punkte sehen möchte? –

Verwandte Themen