生物信息学吧 关注:7,485贴子:14,665
  • 21回复贴,共1

用R语言画爱心

只看楼主收藏回复

分享一个鄙人以前作的一张图,灵感来源于数学系某位同学的函数图
以下为R语言代码,粘贴到命令行或脚本运行都可
x <- seq(-1,1,length = 100);
y1 <- (1-x^2)^(1/2)+(x^2)^(1/3);
y2 <- -(1-x^2)^(1/2)+(x^2)^(1/3);
plot(c(rev(x),x),c(rev(y2),y1), type = 'l' ,xlim = c(-1,1), xlab = "",ylab = "", axes = F);




1楼2013-01-05 15:58回复
    x <- seq(-1,1,length = 100);
    第一句中的length表示取值的多少,如果取更大的值则可以得到更细腻的图
    下图为length=1000时得到的图形

    


    2楼2013-01-05 16:04
    回复
      2026-03-14 14:29:45
      广告
      不感兴趣
      开通SVIP免广告
      下面我们对这个爱心进行完善升级
      下图为length=10000,并将线条改成红色的结果图
      代码如下:
      x <- seq(-1,1,length = 10000);
      y1 <- (1-x^2)^(1/2)+(x^2)^(1/3);
      y2 <- -(1-x^2)^(1/2)+(x^2)^(1/3);
      plot(c(rev(x),x),c(rev(y2),y1), type = 'l' ,xlim = c(-1,1), xlab = "",ylab = "", axes = F,col=2)
      


      3楼2013-01-06 14:40
      收起回复
        x <- seq(-1,1,length = 100);
        y1 <- (1-x^2)^(1/3)+(x^2)^(1/3);
        y2 <- -(1-x^2)^(1/3)+(x^2)^(1/3);
        plot(c(rev(x),x),c(rev(y2),y1), type = 'l' ,xlim = c(-1,1), xlab = "",ylab = "", axes = F,col=3)


        4楼2013-03-29 13:36
        回复
          用polygon应该可以画实心的吧。


          IP属地:上海5楼2013-04-11 23:21
          回复
            > x <- seq(-1,1,length = 100);
            > y1 <- (1-x^2)^(1/2)+(x^2)^(1/3);
            > y2 <- -(1-x^2)^(1/2)+(x^2)^(1/3);
            > plot(c(rev(x),x),c(rev(y2),y1), type = *l* ,xlim = c(-1,1), xlab = "",ylab = "", axes = F);
            > polygon(c(x[x>=-1],x[x<=1]),c(y2,y1),col="red")
            最后加了一行,可以填充颜色了。


            IP属地:广东7楼2014-10-16 14:23
            收起回复
              明显来自matlab的公式~


              8楼2014-10-16 15:34
              收起回复
                请教一下,如果想在上面加一些字,比如 I&U之类的应该怎么做呢?谢谢啦


                IP属地:北京9楼2015-02-26 02:16
                收起回复
                  2026-03-14 14:23:45
                  广告
                  不感兴趣
                  开通SVIP免广告
                  如果想学的话,要看什么类型的书啊谢谢哦


                  来自Android客户端10楼2015-03-08 20:21
                  回复
                    哈哈哈哈哈哈,窝又来了 ,威力加强版 @平易近人奥萨玛
                    x<-seq(-1.1,1.1,length = 3000)
                    rep<-30
                    y<-matrix(,3000,rep)
                    yx<-matrix(,3000,rep)
                    xx<-matrix(,3000,rep)
                    c<-seq(0,1,length=rep)
                    for (i in 1:rep)
                    for (p in 1:3000){
                    y[p,i]<-(1-(x[p])^2)^(1/2)+((x[p])^2)^(1/4)+c[i]
                    yx[p,i]<--(1-(x[p])^2)^(1/2)+((x[p])^2)^(1/4)+c[i]
                    xx[,i]<-x}
                    for (q in 1:10){
                    par(bg="pink")
                    plot(c(rev(xx),xx),c(rev(y),yx), type = 'l' ,xlim = c(-1,1), xlab = "",ylab = "", axes = F,col=q)
                    Sys.sleep(1)}


                    IP属地:广东11楼2015-06-29 17:48
                    收起回复
                      厉害厉害


                      12楼2015-11-09 20:18
                      回复
                        66666


                        IP属地:甘肃来自Android客户端13楼2018-04-15 22:40
                        回复
                          加个好友求学


                          IP属地:甘肃来自Android客户端14楼2018-04-16 19:56
                          回复