这个问题已经在这里有了答案:
9年前关闭。
像绘制圆形(使用plotrix)或矩形一样,如何在R中绘制对称心?
我想要为此编写代码,以便我可以实际为自己做,并能够将其推广到类似的 future 需求。我看过比这更复杂的情节,所以这是很可行的,只是我缺乏这样做的知识。
最佳答案
这是绘制“参数方程式”的示例,即,两个共享公共(public)参数的x和y的两个独立方程式的配对。您可以找到许多可以在这种框架内编写的常见曲线和形状。
dat<- data.frame(t=seq(0, 2*pi, by=0.1) )
xhrt <- function(t) 16*sin(t)^3
yhrt <- function(t) 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
dat$y=yhrt(dat$t)
dat$x=xhrt(dat$t)
with(dat, plot(x,y, type="l"))
Other Parametric (and implicit and polar) Heart Eqns
您还可以使用
polygon
函数的“填充”功能来“加热”它:with(dat, polygon(x,y, col="hotpink"))
而且,如果您只是想让小小的心脏散布在各个地方,则可以在查看
help(points)
页面并使用TestChars
函数之后,使用“心脏”的符号字体版本:points(c(10,-10, -15, 15), c(-10, -10, 10, 10), pch=169, font=5)
Windows用户可能想查看是否添加Cairo软件包是否有助于访问包括“心”在内的卡符号。(当我在MacPro的WinXP“一侧”测试TestChars函数时,我没有得到心,而是通过“特殊”页面进行分页MS-Word中的“符号”没有发现任何内容。因此,我对Rhelp进行了搜索,发现了Ivo Welch的最新帖子。他正在报告错误,但在我的计算机上看起来不错。)他的心和钻石代码被颠倒了。
library(Cairo)
clubs <- expression(symbol('\247'))
hearts <- expression(symbol('\251'))
diamonds <- expression(symbol('\250'))
spades <- expression(symbol('\252'))
csymbols <- c(clubs, hearts, diamonds, spades)
plot( 0, xlim=c(0,5), ylim=c(0,2), type="n" )
clr <- c("black", "red", "red", "black")
for (i in 1:4) {
hline <- function( yloc, ... )
for (i in 1:length(yloc))
lines( c(-1,6), c(yloc[i],yloc[i]), col="gray")
hline(0.9);
hline(1.0);
hline(1.1);
hline(1.2)
text( i, 1, csymbols[i], col=clr[i], cex=5 )
text( i, 0.5, csymbols[i], col=clr[i] ) }
# Also try this
plot(1,1)
text(x=1+0.2*cos(seq(0, 2*pi, by=.5)),
y=1+0.2*sin(seq(0, 2*pi, by=.5)),
expression(symbol('\251') ) )
关于r - 在R上画一颗心,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8082429/