作为考完试后神清气爽的本人,后续恐怕要开始无限放水了
今天就给个灰常简单但又有点好玩的例子,这个实例出现在了R软件的帮助文件里,函数text
text本身是用来在已有的图上添加文本用的,按理来说应该不算是个复杂的函数,但这个示例一下子就击穿了本人的理解,这两行写成这样是像干嘛???
首先第一行plot,这个画出来倒是很简洁,因为它就是个空白的图,两个-1:1的取值范围只限制了这个图的坐标系大小
第二行前半截K <- 16,这就是个赋值,也没啥问题
但如果第二行代码贴上执行一下,就画出来了下边这种效果
K <- 16; text(exp(1i * 2 * pi * (1:K) / K), col = 2)
我勒个去,这效果真是杠杠的,但这是个啥意思咧?还是分解下步骤吧,重点是text里的前半截
可以看到,这玩意是个复数数列,相当于在一个数里同时包括了x轴和y轴的坐标信息
这样表示出来的意思就是,第一个点在图上的位置是x为0.924,y为0.383,这跟上图中1显示的那个地方倒是对得上的
但是,这行里没指定显示什么文字啊?它怎么自动跳出1到16这串数的?然后我看了看上头的参数介绍,找到了它的默认值
labels = seq_along(x$x)
查到seq_along之后,我大概理解这东西取的是向量当前的位置序号
那按这个逻辑的话,是不是只要输入任意复数列,就可以随便画了呢,清个屏稍稍尝试下
plot还是那个plot,大白墙还是那个大白墙,字的颜色设了个有点骚的彩虹色10号,效果如下:
哈哈哈,挺好玩的嘛,那只有这个text可以这么玩么?画线的那个lines能不能也这么干?
我试试哈
K=16; lines(exp(1i * 2 * pi * (1:K+1) / K), col = 2)
事实证明,可以,但因为连接所有点的是直线,所以画出来的是个十六边形
说好了简单点,所以就这些先,我还要看电视呢~