在R中,有没有办法绘制由方程给出的2D曲线?例如,如何绘制由方程式给出的双曲线x ^ 2 - 3 * y ^ 2 + 2 * x * y - 20 = 0?
答案 0 :(得分:16)
您可以使用contour
绘制双曲线的两个分支。
f <- function(x,y) x^2 - 3*y^2 + 2*x*y - 20
x <- y <- seq(-10,10,length=100)
z <- outer(x,y,f)
contour(
x=x, y=x, z=z,
levels=0, las=1, drawlabels=FALSE, lwd=3
)
答案 1 :(得分:1)
仅供记录 - ggplot版本
library(ggplot2)
library(dplyr)
f <- function(x,y) x^2 - 3*y^2 + 2*x*y - 20
seq(-10,+10,length=100) %>%
expand.grid(x=.,y=.) %>%
mutate(z=f(x,y)) %>%
ggplot +
aes(x=x,y=y,z=z) +
stat_contour(breaks=0)
答案 2 :(得分:0)
也许解决方案可以将方程转换为公式并使用curve()来绘制图。
curve(sqrt(4/9*x^2-20/3) + x/3,-20,20)