2012-10-16 413 views
2

我想在R中绘制椭圆,双曲线。 如何使用ggplot2来做到这一点? 让我举一个例子在R中绘制椭圆/双曲线

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

x between -2 and 2 
y between -2 and 2 
+2

你正在寻找一般的等高线绘制函数还是简单绘制一个椭圆?您的Q的标题和内容之间存在冲突。 –

+0

我相应地更改了标题。谢谢 – neticin

+1

如果你可以得到一组满足公式的(x,y)点到数据框中,那么geom_path()就是你的朋友。 –

回答

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()允许控制选择什么等级,相当于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") 

enter image description here