【问题标题】:persp(): what is wrong with my color?persp():我的颜色有什么问题?
【发布时间】:2016-10-11 15:54:00
【问题描述】:

我正在尝试根据我拥有的数据以经度/纬度格式创建透视图。

纬度和经度绘制正确,但背景是奇怪的黑色。我怎样才能改变它。

persp(lga_crop_05, expand =0.5, phi = 35, col= "lightblue", ticktype = "detailed")

这就是我创建情节的代码。 lga_crop_05 是我的栅格图层,其中包含我在上面附加的绘图的纬度/经度/值。

我将不胜感激。 谢谢

【问题讨论】:

标签: r plot raster


【解决方案1】:

出了什么问题?

代码没有问题;但用我们的眼睛。试试下面的代码:

## a function to produce a perspective plot
## "n" controls how refined your grid is
foo <- function(n) {
  x <- seq(-1.95, 1.95, length = n)
  y <- seq(-1.95, 1.95, length = n)
  z <- outer(x, y, function(a, b) a*b^2)
  persp(x, y, z, col = "lightblue")
  }

如果我们有一个 10 * 10 的网格,颜色看起来很完美。

foo(10)

如果我们有一个 100 * 100 的网格,颜色看起来还可以。

foo(100)

现在,如果我们有非常精细的数据,例如,在 1000 * 1000 的网格上。一切都会看起来像黑色。

 foo(1000)

请注意,您有一个栅格。我怀疑您的数据过于精细。你检查过lga_crop_05 中有多少个单元格吗?

如何出行?

设置border = NA。尝试修改功能:

foo1 <- function(n) {
  x <- seq(-1.95, 1.95, length = n)
  y <- seq(-1.95, 1.95, length = n)
  z <- outer(x, y, function(a, b) a*b^2)
  persp(x, y, z, col = "lightblue", border = NA)
  }

【讨论】:

  • 有没有办法减少透视图上绘制的网格线数量?您可以通过降低数据的分辨率来做到这一点,但最好能够使用所有数据,但绘制网格线,例如,每 10 个点而不是每个点。如果这不可能,另一种选择是减小网格线的线宽(例如,将lwd=0.2 作为参数添加到persp)。
  • 完全移除了网格线,使得很难看到表面的拓扑。有没有办法保留所有数据,但绘制的网格线更少?
  • 非常感谢@ZheyuanLi
  • @ZheyuanLi,有没有一个很好的命令可以添加到 persp() 以在我的情节中添加线条?我有一个形状文件,它是一个轮廓,我想添加它来覆盖这个图。我尝试了几种方法,但都没有成功。
  • @eipi10 如果要查看拓扑,也可以使用shade 参数
【解决方案2】:

我用了李老师的示例数据,谢谢。我想这就是你想要的。

# I changed x and y length irregular.
x <- seq(-1.95, 1.95, length = 500)
y <- seq(-1.95, 1.95, length = 200)
z <- outer(x, y, function(a, b) a*b^2)

# make persp.object and draw it
surf <- persp(x, y, z, col = "lightblue", border = NA, theta = -30)

# draw lines parallel to x axis. seq(...) depends on your data's length(y)
for(i in seq(10, 190, length=10)) lines(trans3d(x, y[i], z[,i], pmat = surf), col = "red")
# draw lines parallel to y axis. seq(...) depends on your data's length(x)
for(i in seq(25, 475, length=10)) lines(trans3d(x[i], y, z[i,], pmat = surf), col = "blue")

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 1970-01-01
    • 2021-01-19
    • 2015-04-17
    • 1970-01-01
    • 2020-01-27
    • 2011-03-22
    • 2010-10-04
    相关资源
    最近更新 更多