博客
关于我
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 八大排序算法合集
查看>>
python 关于epoll的学习
查看>>
Python 内存管理
查看>>
Python 内嵌函数:它们有什么用处?
查看>>
Python 内置 sum 函数 vs. for 循环性能
查看>>
python 内置slice的用法
查看>>
Python 内置时间模块
查看>>
python 内部如何实现命名元组?
查看>>
Python 写Android App性能:入门到高级
查看>>
python 写入json数据到数据库
查看>>
Python 出现 TypeError: ‘encoding‘ is an invalid keyword argument for this function 解决方法
查看>>
python 出现 TypeError: ‘list‘ object is not callable 的解决方法
查看>>
python 函数1
查看>>
python 函数学习
查看>>
Python 函数随笔 map()函数,lambda自定义函数
查看>>
Python 分析天气,告诉你中秋应该去哪里
查看>>
python 列表中dict中key排序
查看>>
python 列表函数
查看>>
Python 列表删除相同的元素
查看>>
python 列表生成式
查看>>