[英]Removing outliers from a box plot
我尝试从我的 ggplot2 箱线图中删除离群值,但它似乎不起作用。 我究竟做错了什么?
box_plot_osmo <- ggplot() +
geom_boxplot(data = recircdf, mapping = aes(x = "RecircAlive", y = BeforeOsmolality)) +
geom_boxplot(data = recircdf, mapping = aes(x = "RecircDead", y = AfterDeathOsmolality, color = "blue")) +
geom_boxplot(data = freezerdf, mapping = aes(x = "FreezerDead", y = AfterDeathOsmolality, color = "red")) +
geom_hline(mapping = aes(yintercept = 780, color = "green")) +
geom_boxplot(data = freezerdf, mapping = aes(x = "FreezerAlive", y = DateRemovedOsmolality, color = "pink")) +
theme_bw() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
box_plot_osmo + geom_boxplot(outlier.shape = NA)
您应该在每个geom_boxplot
命令中提及outlier.shape=NA
以删除异常值。 我将使用我自己创建的可重现示例数据来展示这一点。 您可以使用以下代码:
首先不删除异常值:
library(tidyverse)
recircdf <- data.frame(RecircAlive = c("A", "A", "A", "A", "A", "A", "A"),
RecircDead = c("B" , "B", "B", "B", "B", "B", "B"),
BeforeOsmolality = c(0,100,200,300,200,300,700),
AfterDeathOsmolality = c(0,100,100,300,200,400,750))
freezerdf <- data.frame(FreezerAlive = c("A", "A", "A", "A", "A", "A", "A"),
FreezerDead = c("B" , "B", "B", "B", "B", "B", "B"),
DateRemovedOsmolality = c(0,100,200,300,200,300,800),
AfterDeathOsmolality = c(0,1,200,300,400,600,800))
box_plot_osmo <- ggplot() +
geom_boxplot(data = recircdf, mapping = aes(x = "RecircAlive", y = BeforeOsmolality)) +
geom_boxplot(data = recircdf, mapping = aes(x = "RecircDead", y = AfterDeathOsmolality, color = "blue")) +
geom_boxplot(data = freezerdf, mapping = aes(x = "FreezerDead", y = AfterDeathOsmolality, color = "red")) +
geom_hline(mapping = aes(yintercept = 780, color = "green")) +
geom_boxplot(data = freezerdf, mapping = aes(x = "FreezerAlive", y = DateRemovedOsmolality, color = "pink")) +
theme_bw() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
box_plot_osmo
Output:
接下来是outlier.shape=NA
:
box_plot_osmo <- ggplot() +
geom_boxplot(data = recircdf, mapping = aes(x = "RecircAlive", y = BeforeOsmolality), outlier.shape = NA) +
geom_boxplot(data = recircdf, mapping = aes(x = "RecircDead", y = AfterDeathOsmolality, color = "blue"), outlier.shape = NA) +
geom_boxplot(data = freezerdf, mapping = aes(x = "FreezerDead", y = AfterDeathOsmolality, color = "red"), outlier.shape = NA) +
geom_hline(mapping = aes(yintercept = 780, color = "green")) +
geom_boxplot(data = freezerdf, mapping = aes(x = "FreezerAlive", y = DateRemovedOsmolality, color = "pink"), outlier.shape = NA) +
theme_bw() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
box_plot_osmo
Output:
如您所见,异常值现在已被删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.