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. 微信轰炸Python脚本

    1 import time 2 3 from pynput.keyboard import Key,Controller 4 5 keyboard = Controller() 6 7 a = inp ...

  2. Classical Cipher

    [NPUCTF2020]Classical Cipher 难得做到一道古典密码的题目,打开后有一个flag.zip和一个提示. 解密后的flag请用flag{}包裹 压缩包密码:gsv_pvb_rh_ ...

  3. Python算法教程_中文版书籍 程序员必备 免费下载

    Python算法教程_中文版免费下载地址 提取码:55kh 内容简介  · · · · · · 本书用Python语言来讲解算法的分析和设计.本书主要关注经典的算法,但同时会为读者理解基本算法问题和解 ...

  4. Eclipse git提交代码 覆盖问题

    创建本地分支 拉取远程分支到本地 进行代码更新 然后 commit  然后将本地代码推送到远程分支 再发起合入请求 使用elipse 提交合入代码时, 注意push 提交远程分支时,  选择中  要选 ...

  5. vue样式穿透 滚动条隐藏 原生样式修改

    样式穿透:deep,否则可能不能覆盖原有样式,vue2使用/v-deep/或者::v-deep,或者取消scoped,但不推荐,因为会影响到其他页面样式 <style lang="sc ...

  6. Teamcity 部署

    1.先安装docker环境 team_city安装 2.docker run -it --name teamcity-server \ -v /data/teamctiy_data/:/data/te ...

  7. 网络图片转base64

    /**            * 网络图片转base64            * @param src            * @return            * @throws Excep ...

  8. leecode75. 颜色分类

    75. 颜色分类 给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 我们使用整数 0. 1 和 2 分别表示 ...

  9. centos6.5最小安装不能联网

    因为个人需要,在一台笔记本安装centos6.5最小安装时遇到了无法有线联网,后面经过了几个小时的处理 总算理清楚并解决了这个问题.亲测有效而不是转载! 如上图所示 处理这个问题颇有感受,在网上找了很 ...

  10. [前端js] 爬取亿图脑图大纲

    这段程序使看到了好的东西,又没有零钱的产物 还是老师让画思维导图我不想画还想白嫖的想法 用时20分钟 就拿这个来作为例子 https://mm.edrawsoft.cn/template/286842 ...