我想绘制由
f(x, y) = y^4 - y^3 + y^2 - 2*x^2*y + x^4 = 0
隐式定义的曲线。
很明显,由于
x
,这条曲线在 f(-x, y) = f(x, y)
上是对称的。
但是,我只得到了这条曲线的一半
contourLines
:
f <- function(x, y) {
y^4 - y^3 + y^2 - 2*x^2*y + x^4
}
x <- seq(-3, 3, len = 1000)
y <- seq(-3, 3, len = 1000)
z <- outer(x, y, f)
cr <- contourLines(x, y, z, levels = 0)
library(ggplot2)
dat <- data.frame(x = cr[[1]]$x, y = cr[[1]]$y)
ggplot() + geom_path(aes(x, y), data = dat)
此外,你可以检查一下
contour(x, y, z, levels = 0)
绘制预期曲线levels = 0
中的 levels = 0.0001
替换为 contourLines
会得到对称曲线发生了什么事?如何得到对称曲线?
我明白了:
str(cr)
显示cr
是12条路径的列表,必须绘制每条路径,而我只绘制了第一个。我认为每个级别的输出中都有一个列表。