我在数据上使用了scale()函数,以避免在进行混合模型时出现高相关性。现在我希望原始值出现在我的图中。所以我用以下方法反转了缩放比例x * attr(x, 'scaled:scale') + attr(x, 'scaled:center')
并将这些值放入我用来绘制的数据框的新列中。例如,我的数据现在看起来像这样,其中 x 是实际值,x.s 是缩放值:
x <- sample(x=1:100, size = 50)
y <- sample(x=1:100, size = 50)
df <- as.data.frame(cbind(x,y))
df$x.s <- scale(df$x)
我现在想用 ggplot 绘制它,但在 x 轴上显示 x 的值,而不是 x.s 的缩放值,所以我执行了以下操作:
ggplot(df, aes(x = x.s, y = y))+
geom_point()+
scale_x_continuous(labels = df$x, breaks = df$x.s)+
labs(x = "Canopy openness [%]", y = "Rarefied richness") +
theme_bw()
到目前为止,这是有效的,输出看起来像这样:
我现在的问题是,我希望 x 轴上的刻度均匀分布,这是我通常会做的breaks=seq(0,100,10)
,但已经定义了中断以避免错误Error in f(..., self = self) : Breaks and labels are different lengths
,现在我不知道该怎么做,任何帮助将不胜感激!
如果我在 x 轴上使用 x,则在实际数据集中,我使用 CI 进行的预测回归将不再适合。以下是我的数据集 1 中的图:带有缩放值 (x.s):
和 2:如果我在 x 轴上使用 x 而不是 x.s