library(gganimate)
library(gifski) # 构造数据
phi<-pi/6
theta<-pi/3
c<-matrix(c(cos(phi),sin(phi),-sin(phi),cos(phi)),
nrow=2,byrow=TRUE)
b<-matrix(c(5,0,0,1),nrow=2,byrow=TRUE)
a<-matrix(c(cos(theta),-sin(theta),sin(theta),cos(theta)),
nrow=2,byrow=TRUE)
A<-a%*%b%*%c
A x<-matrix(c(1,0,0,1),nrow=2,byrow=TRUE)
rotate1<-c%*%x
stretch<-b%*%c%*%x
rotate2<-a%*%b%*%c%*%x
svd_trans<-cbind(x,rotate1,stretch,rotate2)
df1<-data.frame(t=c(1,1,2,2,3,3,4,4),
x1=c(0,0,0,0,0,0,0,0),
y1=c(0,0,0,0,0,0,0,0),
x2=svd_trans[1,],
y2=svd_trans[2,],
point=c('A','B','A','B','A','B','A','B')) Points<-matrix(c(cos(seq(0,2*pi,0.01*pi)),
sin(seq(0,2*pi,0.01*pi))),
byrow=TRUE,nrow=2)
Points_rotate1<-c%*%Points
Points_stretch<-b%*%c%*%Points
Points_rotate2<-a%*%b%*%c%*%Points
Points_svd<-cbind(Points,Points_rotate1,Points_stretch,Points_rotate2)
df2<-data.frame(Points_x=Points_svd[1,],
Points_y=Points_svd[2,],
t=rep(c(1,2,3,4),each=ncol(Points))) # 绘制图形
p<-ggplot()+
geom_segment(data=df1,aes(x=x1,y=y1,xend=x2,yend=y2,color=point),
arrow=arrow(length = unit(0.03, "npc")))+
geom_point(data=df2,aes(x=Points_x,y=Points_y),size=0.01)+
labs(x=expression(x),y=expression(y))+
theme(legend.position="none")+
transition_states(t)
animate(p, renderer = gifski_renderer())

SVD动态图的更多相关文章

  1. Wpf 中使用gif格式的动态图

    第一种方法:使用winform插件 <WindowsFormsHost  xmlns:wf="clr-namespace:System.Windows.Forms;assembly=S ...

  2. 在sublime text 中的Emmet快捷键动态图演示

    Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...

  3. HighChartS cpu利用率动态图(Java版)

    来源:http://www.cnblogs.com/haifg/p/3217699.html   最近项目需要监控服务器cpu的利用率,并做成动态图.在网上查找了一些资料,最终选择了HighChart ...

  4. GIMP也疯狂之动态图的制作(四)

    本篇文章为gimp制作动态图的第四篇.在之前的基础上简单的拓展了下思路.就能做出蛮实用的动态图.本文将介绍两个动态图.第一个为在一张静态图上添加动态图,第二个图为修改部分渐变. 效果: 素材: 其实, ...

  5. GIMP也疯狂之动态图的制作(三)

    Note:本篇文章内容为linux下利用gimp和其它工具组合完成截取制作GIF图的一种实现,制作更为灵活,但并不方便,如果不需要那么高的定制性,并追求方便高效.可以使用类似QQ影音之类的软件,自带截 ...

  6. iOS开发中在UIWebView中添加Gif动态图

    开发是一件很有趣的事,偶尔在程序中添加一些小东西,会给你的应用增色不少.比如,当你的某些功能暂时还不准备上线时,可以先一个放展示Gif动态图的UIWebView上去,既可以告诉用户APP以后会有的功能 ...

  7. 那些过目不忘的无线端交互设计(DRIBBBLE GIF动态图)

    Dribbble精选:Dribbble上令人惊叹的无线端交互设计!来自全球牛人们的奇思妙想,新颖动人的交互在这一张张GIF动态图上一览无余!当然界面一样打动人心,腾出手点赞的同时!记得另存哟:) 作者 ...

  8. GIF动态图制作

    GIF动态图制作 博客写了也有一阵了,一直好奇大牛的博客里demo的动态图是怎么做的,今天抽空研究了一下,找了一个软件,以后再发现有好的工具再继续推荐 GIF制作工具--LICEcap 效果要比下面的 ...

  9. 4.14Python数据处理篇之Matplotlib系列(十四)---动态图的绘制

    目录 目录 前言 (一)需求分析 (二)随机数的动态图 1.思路分析: 2.源代码: 2.输出效果: 目录 前言 学习matplotlib已经到了尾声,没有必要再继续深究下去了,现今只是学了一些基础的 ...

  10. 视频转GIF动态图怎样实现

    怎样将视频转GIF动态图呢?随着现在社交方式的不断发展,GIF动态图也成了现在聊天中必不可少的,一种娱乐形式.那么当我们在看视频时,看到了精彩的片段,我们应该怎样将这些精彩的视频片段制作成GIF动态图 ...

随机推荐

  1. C语言学习--动态内存分配(未完待续)

    内存分配的类型: 在C/C++中内存分为5个区,分别为栈区.堆区.全局/静态存储区.常量存储区.代码区. 静态内存分配:编译时分配.包括:全局.静态全局.静态局部三种变量. 动态内存分配:运行时分配. ...

  2. I2C接口(续一)

    I2C接口共涉及到18个寄存器,下面就来对它们进行具体分析. 先来看I2C配置寄存器CFG,下表是它的全部位结构,其地址分别为0x40050000(I2C0),0x40054000(I2C1),0x4 ...

  3. 爬小说_BeautifulSoup解析_easy

    title: 爬小说_BeautifulSoup解析_easy author: 杨晓东 permalink: 爬小说_BeautifulSoup解析_easy date: 2021-10-02 11: ...

  4. 如何将一个h5ad文件内部添加一个csv文件作为属性obsm

    问题展开 学习生物信息的时候发现,需要将一个M * N的csv文件作为anndata文件的.X部分,一个M * 2的csv文件作为anndata文件的空间位置信息标识. 首先先读M*N的文件 myda ...

  5. [UnityShader]说厌了的遮挡显示

    首先是效果 这个其实有相当多的地方在说了,我就不嚼舌根了 大概原理:一个Shader两个Pass,第一个Pass不管深度,都渲染,但是不写入深度,第二个Pass几乎没有改动,因为后执行,会覆盖掉第一个 ...

  6. Java——File类

    File类 File:代表一个文件或者文件夹 方法 createNewFile() exists() getAbsolutePath() getName() getParent() isDirecto ...

  7. vite 运行或打包出现内存溢出的解决方案

    在使用vite运行或打包时出现了内存耗尽的报错 vite VUE npm run build 报错 npm ERR! code ELIFECYCLE npm ERR! errno 134 内存溢出 n ...

  8. 蓝牙mesh消息包与以太网帧的分层构成

    目录 笔者在接触以太网之前,先了解的是蓝牙mesh的各类信息.现翻看一本介绍TCP/IP协议的资料,发现应用层数据在以太网协议栈内的封装过程与蓝牙mesh协议栈内的封装过程异曲同工.下图左侧是手头这本 ...

  9. 关于ie浏览器query ajax提交单个操作无效

    第一次写博客 大家不要喷我!!!! 需求需要开发一个无刷新的用户注销和恢复注销功能 遇到的实际问题直接贴图----> 这是开始页面 当点击红xx时提示修改成功 这里似乎是对的哈 但是等点击刷新的 ...

  10. Newtonsoft.Json高级用法--转载至 焰尾迭 随笔

    本人只做搬运工,以这方便自己学习的态度!以下内容均为拷贝! 如有不适请联系本人! 本文原作者:焰尾迭 本文地址:http://www.cnblogs.com/yanweidie/p/4605212.h ...