R 缩放 y 轴以适应黄土曲线
R to scale the y-axis to fit the loess curves
我想根据ggplot2的loess函数缩小Y轴的比例,即使这意味着一些原始点不会显示。
问题是我事先不知道黄土函数的最大值是多少。我所拥有的只是各种原始数据集,有时其中一些数据集偶尔会出现高峰,因此它们将我所有的黄土曲线挤压到图表的底部,而我更关心黄土的显示曲线比显示原始数据(但必须显示这些原始数据,至少是那些靠近黄土曲线的数据)
在这个例子中,蓝色黄土线永远不会高于2,而2和3之间有很多点;所以通常情况下,我希望 Y 轴的顶部为 2 并放弃那些极端的原始点。
library(ggplot2)
set.seed(34)
n <- 200
X <- runif(n)*8
Y <- sin(3*X) + cos(X^2) + rnorm(n, 0, 0.5)
myData <- data.frame(X,Y)
fit <- loess(Y~X,data=myData)
myData$pred <- predict(fit)
ggplot(myData, aes(X,Y))+
geom_point()+
stat_smooth(method="loess", se=F, size=3)+
geom_line(aes(X,pred),colour="yellow")
你快到了,只需添加一个 coord_cartesian
电话
ggplot(myData, aes(X,Y))+
geom_point()+
stat_smooth(method="loess", se=F, size=3)+
geom_line(aes(X,pred),colour="yellow") +
coord_cartesian(ylim=c(min(myData$pred)-.1, max(myData$pred)+.1))
我想根据ggplot2的loess函数缩小Y轴的比例,即使这意味着一些原始点不会显示。
问题是我事先不知道黄土函数的最大值是多少。我所拥有的只是各种原始数据集,有时其中一些数据集偶尔会出现高峰,因此它们将我所有的黄土曲线挤压到图表的底部,而我更关心黄土的显示曲线比显示原始数据(但必须显示这些原始数据,至少是那些靠近黄土曲线的数据)
在这个例子中,蓝色黄土线永远不会高于2,而2和3之间有很多点;所以通常情况下,我希望 Y 轴的顶部为 2 并放弃那些极端的原始点。
library(ggplot2)
set.seed(34)
n <- 200
X <- runif(n)*8
Y <- sin(3*X) + cos(X^2) + rnorm(n, 0, 0.5)
myData <- data.frame(X,Y)
fit <- loess(Y~X,data=myData)
myData$pred <- predict(fit)
ggplot(myData, aes(X,Y))+
geom_point()+
stat_smooth(method="loess", se=F, size=3)+
geom_line(aes(X,pred),colour="yellow")
你快到了,只需添加一个 coord_cartesian
电话
ggplot(myData, aes(X,Y))+
geom_point()+
stat_smooth(method="loess", se=F, size=3)+
geom_line(aes(X,pred),colour="yellow") +
coord_cartesian(ylim=c(min(myData$pred)-.1, max(myData$pred)+.1))