优秀的编程知识分享平台

网站首页 > 技术文章 正文

R语言——一个简单的画图示例(r语言怎么画线图)

nanyue 2024-07-20 23:36:37 技术文章 6 ℃

作为考完试后神清气爽的本人,后续恐怕要开始无限放水了

今天就给个灰常简单但又有点好玩的例子,这个实例出现在了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)

事实证明,可以,但因为连接所有点的是直线,所以画出来的是个十六边形

说好了简单点,所以就这些先,我还要看电视呢~

最近发表
标签列表