R语言绘制函数/隐函数曲线
R语言是一门不用就忘的语言。现在已经4.0.2了,最初接触它,还是2.1.4版。昨天想用Excel VBA直接在picture上绘图,后来发现VBA里面没有完备的WinAPI,直接画似乎是做不到的,除非引入dll。那感觉太糟糕了。当然这是尝试了不少时间才发现的。我对VBA并不熟。于是看了看R。绘图是R的强项。help和百度之后,觉得Excel确实太过局促。
-
一元函数图象绘制,一个curve()即可。顺便试了下latex2exp。
#新开一个窗口,以便自定义字体生效
windows()
#使用latex2exp包,生成带公式的标注
library(latex2exp)
curve(3+6*sin(sqrt(x))^3,#这里改啥是啥
0, 64,
bty="l",
xlab = "x",
ylab = "y",
asp = 1)
#画十字线
abline(h=0, v=3,
lty=2, col = "darkgray")
#自定义字体开始
require(showtext)
font_add(family = 'NewRoman',
regular = 'times.ttf')
#自动使用字体
showtext_auto()
text(0,3, "原点",
col = rgb(1,0,0))
text(5, 5,
TeX("$y=3+6*\\sin ^3 \\sqrt{x}$"),
family = "NewRoman",
col = rgb(0,0,1))
-
隐函数图象的绘制,其实道理都是用等值线contour()函数来扫描。 方法一:
x<-y<-seq(-10,20,0.05)
f<-function(x,y){
x*y-cos(y*cos(x))
}
z<-outer(x,y,f)
contour(x,y,z)
方法二:
implicitplot<-function(
f,
xrange=seq(-10,10,length=1000),
yrange=seq(-10,10,length=1000))
{
z<-outer(xrange,yrange,f)
contour(xrange,yrange,z,
levels=0,labels='',
labcex=.0001)
}
f<-function(x,y){
#画个椭圆
x*x/100.0+y*y/64.0-1
}
windows()
implicitplot(f)