Scatterplot3d-调整多边形/平面的大小

时间:2019-01-23 12:57:37

标签: r arguments polygon

这是使用来自ISLR的数据集College的示例:

library(scatterplot3d)
library(ISLR)
attach(College)

s3d <- scatterplot3d(x=Top10perc, y=S.F.Ratio, z=PhD)
my.lm <- lm(Top10perc ~ S.F.Ratio + PhD)
plane <- s3d$plane3d(my.lm, lty.box = "solid", draw_polygon = TRUE)

The resulting plot

我想增加灰色多边形(平面)的尺寸。从scatterplot3d文档中:

  

自变量draw_linesdraw_polygon允许选择是通过线段表示平面还是将其表示为实体曲面。 polygon_args中的列表收集要传递给底层多边形调用的参数,如果draw_polygon=TRUE,则该多边形调用将绘制实心(或透明)平面。

polygon函数:

  

polygon(x, y = NULL, density = NULL, angle = 45, border = NULL, col = NA, lty = par("lty"), ..., fillOddEven = FALSE)

我想我需要在基础的x调用中更改ypolygon参数,但是我该怎么做?我可以访问它们吗?

1 个答案:

答案 0 :(得分:0)

我认为您绘制的平面错误。该文档有点稀疏,但似乎s3d$plane3d假设z是响应变量,x是第一个预测变量,y是第二个预测变量。但是,即使我更改您的代码以使用这些假设,例如

library(scatterplot3d)
library(ISLR)

s3d <- with(College, scatterplot3d(z=Top10perc, x=S.F.Ratio, y=PhD))
my.lm <- lm(Top10perc ~ S.F.Ratio + PhD, data = College)
plane <- s3d$plane3d(my.lm, lty.box = "solid", draw_polygon = TRUE)

我没有很好的情节:

screenshot

似乎scatterplot3d并没有在边界框的边界修剪平面。

使用rgl,我会得到更好的飞机,

library(rgl)
library(ISLR)

with(College, plot3d(x=Top10perc, y=S.F.Ratio, z=PhD))
my.lm <- lm(Top10perc ~ S.F.Ratio + PhD, data = College)
coefs <- coef(my.lm)
planes3d(a = -1, b = coefs["S.F.Ratio"], c = coefs["PhD"], d = coefs["(Intercept)"],
         alpha = 0.2)

screenshot

该图可以旋转,但是看起来不像scatterplot3d输出(平面上没有网格),并且绘制起来更困难:{中不支持lm()结果{1}},因此您需要仔细阅读帮助页面。也许其他人可以提供更好的选择。