在这种情况下,我在虹膜数据框中添加了分组变量。我希望按物种创建Sepal.Length的箱线图,并用分组变量填充,并用标签标识异常值。所有这些都有效,但是当我尝试用geom_text标记离群值时,它们现在确实以分组位置打印,而不是在中心。看来geom_text没有继承全局aes(),但我不知道为什么。
代码:
library(tidyverse) # function to id outlier is_outlier <- function(x) { return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x)) } # make a grouping variable iris$group <- sample(1:3, nrow(iris),replace = T) # make a outlier variable iris <- iris %>% group_by(Species, group) %>% mutate(outlier = ifelse(is_outlier(Sepal.Length), Sepal.Length, as.numeric(NA))) iris$outlier # graph iris %>% ggplot(aes(x = Species,y = Sepal.Length, fill = factor(group))) + geom_boxplot() + geom_text(aes(label = outlier))
标签位于中间,而不是位于其各自的框上。这是怎么回事?
答案 0 :(得分:1)
这是由于在拥有该组后才在箱线图中躲避。使用position_dodge
对其进行显式控制。您可能要尝试使用DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'INSERT INTO Users (Username) VALUES(@VALUE)'
EXECUTE sp_executesql @SQL, N'@VALUE VARCHAR(10)', 'Username--'
中的hjust
和vjust
参数,以避免在该点上作图。
geom_text