【发布时间】:2023-03-27 19:15:01
【问题描述】:
我有一个二维数据集(例如列 x 和 y)。我使用以下函数来绘制此数据的 QQ 图。
# Creating a toy data for presentation
df = cbind(x = c(1,5,8,2,9,6,1,7,12), y = c(1,4,10,1,6,5,2,1,32))
# Plotting the QQ-plot
df_qq = as.data.frame(qqplot(df[,1], df[,2], plot.it=FALSE))
ggplot(df_qq) +
geom_point(aes(x=x, y=y), size = 2) +
geom_abline(intercept = c(0,0), slope = 1)
这是结果图:
我的问题是,如何避免绘制最后一点(即 (12,32))?我宁愿不手动删除它,因为我有几个这样的数据对,而且每个数据对都有类似的异常值。我想做的是编写一个代码,以某种方式识别距离 45 度线太远的点,并从 df_qq 中消除它们(例如,如果它比到 45 度线的平均距离远 5 倍,它可以是被淘汰)。我的主要目标是使图表更易于阅读。当异常值没有被消除时,QQ 图的更规则部分占据了图形的太小部分,这使我无法直观地评估除异常值之外的两个向量的相似性。
我将不胜感激。
【问题讨论】:
-
检查
coord_cartesian()
标签: r ggplot2 outliers quantile