小编mb7*_*744的帖子

ggplot2:翻转轴并保持数据的纵横比

在ggplot2中,coord_fixed()坐标系确保数据的宽高比保持在给定值.因此,面板的形状会发生变化,以保持数据的形状.同时coord_flip()交换图的轴.但是,ggplot2中的绘图必须只有一个坐标系,因此这些功能无法组合.

我的问题是:

是否存在一种方法来的行为结合coord_fixed()coord_flip(),从而导致与所述x和y轴的坐标系交换和数据的固定纵横比?

这是一个很受欢迎的问题,但常见的答案是错误的:

常用认为答案是使用coord_flip()连同theme(aspect.ratio = 1)代替coord_fixed().但是,根据ggplot2文档,此设置指的是"面板的宽高比".因此,数据将改变形状以保持面板的形状.

我怀疑这是ggplot2中目前不存在的功能.但更重要的是,我认为应记录正确的解决方案或至少对此问题的回应.

问题的快速最小示例:

library(ggplot2)
x <- 1:100; data <- data.frame(x = x, y = x * 2)
p <- ggplot(data, aes(x, y)) + geom_point()

p # by default panel and data both fit to device window
p + coord_fixed() # panel changes shape to maintain shape of data
p + theme(aspect.ratio = 1) # data changes shape to …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

7
推荐指数
1
解决办法
580
查看次数

lm()和predict.lm()的奇怪行为取决于显式命名空间访问器的使用

我感兴趣的是lm函数的一些令人不安的行为以及predict.lmR中的相关函数.splines基础包提供了bs生成b样条展开的函数,然后可以使用lm多功能线性模型拟合函数来拟合样条模型.

这些lmpredict.lm函数具有很多内置的便利性,可以利用公式和术语.如果调用bs()嵌套在lm调用内,则用户可以提供单变量数据predict,并且此数据将自动扩展为适当的b样条基础.然后将照常预测这种扩展的数据矩阵.

library(splines)

x <- sort(runif(50, 0, 10))
y <- x^2

splineModel <- lm(y ~ bs(x, y, degree = 3, knots = c(3, 6)))

newData <- data.frame(x = 4)
prediction <- predict(splineModel, newData) # 16

plot(x, y)
lines(x, splineModel$fitted.values, col = 'blue3')
points(newData$x, prediction, pch = 3, cex = 3, col = 'red3')
legend("topleft", legend = c("Data", "Fitted Values", "Predicted …
Run Code Online (Sandbox Code Playgroud)

r spline predict lm

7
推荐指数
1
解决办法
212
查看次数

标签 统计

r ×2

ggplot2 ×1

lm ×1

plot ×1

predict ×1

spline ×1