2

我想在 R 中绘制椭圆、双曲线。如何使用 ggplot2 来绘制?让我举个例子

x^2 +3xy+ 4x+ 2y+ 2y^2 = 0 

为了

x between -2 and 2
y between -2 and 2
4

1 回答 1

6

构造一个数据字段:

d <- transform(expand.grid(x=seq(-2,2,length=51),
            y=seq(-2,2,length=51)),z=x^2+3*x*y+4*x+2*y+2*y^2)

制作一个基本geom_contour图,每个级别的颜色不同:

g1 <- qplot(x,y,z=z,data=d,colour=factor(..level..),geom="contour")

现在摆脱除“0”级别之外的所有行。这取决于stat_contour选择零作为其轮廓级别之一,这在某些情况下可能很脆弱......(对我来说,stat_contour()允许控制选择的级别并不明显,相当于基数 R 的levels参数contour()contourLines()在基数 R 中的参数 - 如果它确实,这个过程会更容易一些。如果有人足够关心这个,可以向https://github.com/hadley/ggplot2/issues提交一个愿望清单项目......)

g1 + scale_colour_discrete(breaks="0",limits=c("0","0"),na.value=NA,
                          guide="none")

在此处输入图像描述

于 2012-10-16T20:31:48.453 回答