【问题标题】:How to show a coordinate grid in car::scatter3d plot如何在 car::scatter3d 图中显示坐标网格
【发布时间】:2018-06-27 12:01:45
【问题描述】:

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

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 我意识到

在回归曲面上绘制网格线(真或假)。

因此,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"))

【问题讨论】:

标签: r plot r-car


【解决方案1】:

如果您想要一个带有网格的交互式绘图,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')

【讨论】:

  • 酷——我差点放弃了 ;-) 和 Python 的 plotly 一样吗?
【解决方案2】:

对我来说它不起作用。但是,您可以使用其他一些包,例如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")

【讨论】:

  • 没有帮助。请参阅我的编辑。你真的有带网格的情节吗?
  • 它看起来不起作用。如果你想要一个网格,你可以使用另一个包,比如scatterplot3dsthda.com/english/wiki/…
  • 不是解决方案,而是 +1,因为您让我阅读了两次文档 ;-) 查看我的编辑...
  • 我明白了。我花了一些时间尝试它,但我认为有一些错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多