11

在 R 中,有没有办法绘制方程给出的二维曲线?例如,如何绘制方程 x^2 - 3*y^2 + 2*x*y - 20 = 0 给出的双曲线?

4

3 回答 3

18

您可以使用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
)

在此处输入图像描述

于 2012-04-17T22:41:51.947 回答
3

仅作记录 - 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)

在此处输入图像描述

于 2016-12-15T06:58:54.233 回答
0

也许解决方案可以将方程转换为公式并使用 curve() 绘制图。

curve(sqrt(4/9*x^2-20/3) + x/3,-20,20)

于 2017-04-26T09:25:41.827 回答