R `contourLines` 问题

问题描述 投票:0回答:1

我想绘制由

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
    会得到对称曲线

发生了什么事?如何得到对称曲线?

r contour
1个回答
0
投票

我明白了:

str(cr)
显示
cr
是12条路径的列表,必须绘制每条路径,而我只绘制了第一个。我认为每个级别的输出中都有一个列表。

© www.soinside.com 2019 - 2024. All rights reserved.