博客
关于我
R语言绘制颜色变化的同心圆动图
阅读量:611 次
发布时间:2019-03-13

本文共 688 字,大约阅读时间需要 2 分钟。

绘制圆形热力图的代码整理解释

library(caTools);

x <- y <- seq(-4pi, 4pi, len=200);
r <- sqrt(outer(x^2, y^2, '+'));

image <- array(0, c(200, 200, 10));

for(i in 1:10) {
image[,,i] <- cos(r - (2pii/10))/r^{0.25};
}

write.gif(image, "dynamic_gir.gif", col="rainbow");

z <- read.gif("dynamic_gir.gif");
for(i in 1:10) {
image(z, image[,,i], breaks=(0:256)-0.5, asp=1);
}

解释:

  • 首先,创建了x和y的二维矩阵,范围为-4π到4π。
  • 计算二维半径矩阵r。
  • 初始化一个三维数组image,尺寸为200x200x10,以存储每个深度的图像。
  • 使用循环生成每个图像框架,通过调整循环变量i,实现圆形图的风格变化。
  • 调用write.gif生成图片并保存为"dynamic_gir.gif"。
  • 读取生成的图片文件,通过循环绘制动态效果,实现圆形图的流动效果。

进一步分析:

  • 调用cos函数,并通过调整参数实现不同效果:
    • 公式中的2π*i/10用于产生周期性变化,避免重复的效果。
    • 除以r^{0.25}的作用是拉伸纵向数据,使图像呈现优雅的圈圈结构。
  • 不同分母值将影响圈圈大小和间距:
    • 倍增分母将导致圈圈变圆润且间距变大。
    • 倍减分母则使圈圈变小并间距密集。

转载地址:http://sfjaz.baihongyu.com/

你可能感兴趣的文章
python中import os_Python:相对导入与绝对导入(import)、os.path、__file__
查看>>
python中is和==操作符
查看>>
Python中range对象的使用以及打印九九乘法表
查看>>
Python中set.discard和set.remove方法之间的运行时差异?
查看>>
python中tkinter中value_输入字段中的python Tkinter get()值
查看>>
Python中wx.FlexGridSizer
查看>>
Python中xPath技术和BeautifulSoup的使用
查看>>
python中yield的用法详解——最简单,最清晰的解释
查看>>
python中‘set.intersection()‘的算法是什么?
查看>>
Python中一个图形中的多个绘图
查看>>
python中一个好的持久同步队列
查看>>
Python中不准确的对数
查看>>
python中什么是实例方法_在Python中创建实例方法对象的不同方法
查看>>
Python中使用cutecharts实现简单的手绘风格的图表
查看>>
python中使用dxfgrabber,解析dxf文件信息生成obj文件
查看>>
Python中使用ncmbot玩转网易云音乐
查看>>
Python中使用PIL快速实现二值图
查看>>
Python中使用PIL快速实现灰度图
查看>>
Python中使用pip install ncmbot时各种错误解决办法
查看>>
Python中使用requests和parsel爬取喜马拉雅电台音频
查看>>