- 建立数据框 df 并添加 x, y, z 三列的值。
df <- expand.grid(x = seq(1, 5, 0.1), y = seq(1, 5, 0.1))
df$z <- sin(df$y) / (1 + df$x^2)
这里使用了 expand.grid
函数生成了一个包含 x,y 所有可能取值的数据框,然后对每个 (x,y) 计算 z 值。
- 使用
ggplot2
包中的geom_tile
和geom_contour
分别绘制 z 的图像,并描述 z 在 x,y 平面的单调性。
使用 geom_tile
函数绘制 2D 栅格图:
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = z)) +
geom_tile() +
scale_fill_gradientn(colors = rainbow(8))
使用 geom_contour
函数绘制 z 的等高线图:
ggplot(df, aes(x = x, y = y, z = z)) +
geom_contour() +
scale_fill_gradientn(colors = rainbow(8))
在 x,y 平面上,z 的单调性可以通过观察等高线的形状来得知。从图中可以看出,z 的值在 x,y 平面上没有单调性,即 z 的值并不随着 x,y 的增加或减小而单调地增加或减小。