如何在car::scatter3d图中显示坐标网格

3

只需运行以下代码。我想显示坐标网格,但什么也没有发生:

df_runtime <- data.frame(x = c(0L, 20L), 
                         y = c(0L, 10L), 
                         z = c(0L, 50L), stringsAsFactors = FALSE)

car::scatter3d(x = df_runtime$x,
               y = df_runtime$y,
               z = df_runtime$z,
               xlab = "x", ylab = "x", zlab = "z", 
               surface = FALSE, grid = TRUE)

从文档的??car::scatter3d中我了解到:

在回归曲面上绘制网格线(TRUE或FALSE)。

因此,grid参数不是我要找的。 有没有一种方法可以获得坐标网格?对我来说,这真的很有用作为眼睛的指南。


在Carles的输入后编辑

我想保留交互式图表 - 这就是为什么我正在寻找car :: scatter3d解决方案的原因。如果您不需要此功能,则scatterplot3dFactoClass的组合非常好。以下是非交互方式的操作:

scatterplot3d::scatterplot3d(
  df_runtime$x,
  df_runtime$y,
  df_runtime$z,
  color = "blue", pch = 19, # filled blue circles
  # type = "h",             # lines to the horizontal plane
  main = "Title",
  xlab = "x",
  ylab = "y",
  zlab = "z",
  angle = 35,
  grid = FALSE)
FactoClass::addgrids3d(df_runtime$x,
                       df_runtime$y,
                       df_runtime$z,
                       angle = 35,
                       grid = c("xy", "xz", "yz"))

似乎这个函数不允许使用网格。但是,你可以尝试修改@agstudy在这里创建的函数https://dev59.com/6XnZa4cB1Zd3GeqPxP9m,用于另一个三维绘图函数。 - prosoitos
2个回答

4
如果您需要一个带有网格的交互式图表,plotly 是另一个解决方案:
df_runtime <- data.frame(x = c(0L, 20L), 
                         y = c(0L, 10L), 
                         z = c(0L, 50L), stringsAsFactors = FALSE)

plotly::plot_ly(df_runtime, 
                     x = ~x, 
                     y = ~y, 
                     z = ~z,
                type = 'scatter3d',
                mode = 'markers')

Plotly Graph


酷 - 我差点放弃了;-) 它和 Python 的 plotly 一样吗? - Christoph

1
对我来说它并不起作用。但是,您可以使用其他软件包,例如library("scatterplot3d")。我只是添加了更多的点,它就起作用了:
df_runtime <- structure(list(n_legs_array = rnorm(100,0,10), 
                             n_vehicles_array = rnorm(100,0,10), 
                             t = rnorm(100,0,10)), 
                        .Names = c("n_legs_array", "n_vehicles_array", "t"), 
                        row.names = c(1L, 2L), 
                        class = "data.frame")
library("scatterplot3d")

scatterplot3d(x = df_runtime$n_legs_array,
               y = df_runtime$t/60, # minutes
               z = df_runtime$n_vehicles_array,
               xlab = "n_legs", ylab = "time [min]", zlab = "n_vehicles", 
                grid = TRUE,box = FALSE,
               color =   "#56B4E9")

没有帮助。看看我的编辑。你真的有一个带网格的图吗? - Christoph
看起来好像不起作用。如果你想要一个网格,你可以使用另一个包,比如scatterplot3d。http://www.sthda.com/english/wiki/scatterplot3d-3d-graphics-r-software-and-data-visualization - Carles
1
不是解决方案,但+1因为你让我阅读了文档两次;-)请参见我的编辑... - Christoph
我明白了。我花了一些时间尝试,但是我觉得有一些bug。 - Carles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接