【问题标题】:R rgl plot value not showing on axisR rgl绘图值未显示在轴上
【发布时间】:2013-03-12 04:35:37
【问题描述】:

我正在使用 r 中的 rgl 包来绘制一些数据。在这里完成:

http://www.r-bloggers.com/creating-3d-geographical-plots-in-r-using-rgl/

由于某种原因,比例与图表不一致。

我更改了 X 和 Z 轴的比例以增加浮雕,我最初认为这是导致问题的原因,但在下面的示例中,即使我将 0.02 更改为 1 也会出现问题。

library(rgl)

rdata <- c(0.8926,0.8986,0.9478,0.9672,0.916,0.912,0.9324,0.9532,0.9488,0.9376,0.921,0.927,0.9728,0.956,0.9318,0.9202)
labs <-c(100,200,500,1000)

rmatrix <- matrix(rdata, nrow=4,ncol=4,)
dimnames(rmatrix) <- list(labs,labs)

y <- as.matrix(rmatrix)
x <- 0.02*(1:nrow(y))
z <- 0.02*(1:ncol(y))

rgl.surface(x, z, y, color="red", back="lines")
axis3d('x--', labels=row.names(rmatrix),color="black")

为什么会这样?

感谢您的帮助! 垫子

【问题讨论】:

  • 请提供可重现的示例?

标签: r axis rgl


【解决方案1】:

如果没有为axis3d 中的labels 参数提供值,我会得到一个带有六个刻度线的轴。由于您为 labels 参数提供了一个只有四个值的向量,因此看起来axis3d 回收了这些值以覆盖所有刻度线。

通过为at 参数提供一个值,告诉axis3d 您希望在哪些数据值处放置刻度线:

axis3d('x--', at = x, labels=row.names(rmatrix),color="black")

附言我必须在rgl.surface() 之前添加以下行以避免出现段错误

rgl.open()

【讨论】:

  • 我也是(在段错误上);如果您有时间,可能值得向维护者报告...
  • 太好了,解决了!非常感谢。
猜你喜欢
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多