R语言可视化——动态心型图
目录
- 引言
- 1、心型图初探
- 1.1 带偏移的两个函数
- 1.2 简单心型图
- 2、改进的心型图
- 3、动态画心型图(gif)
- 4、ggplot2版本的心型图
- 4.1数据
- 4.2心型图初步
- 4.3原件打包
- 4.4画图
- 5、总结
引言
再开始学习R语言基础画图得时候画过心型图
,但是一直是静态得就把代码仍在角落里积灰了,今天拿出来用新的技术重写了一份。本文包含但不限于下面的函数包和技术:plot函数function方法的S3类、animation函数包、函数的闭包
。如有没有讲解到得可自行百度学习。
本文用到的心型函数是:
这是一个隐式表达式,为了方便编程,把他写为两个函数(注意这不是分段函数)。
有追女盆友急需的,本文全部代码可以移步下面资源链接。以整理好,拿走不谢。
版权声明:代码下载只能自己追女盆友用,切勿用于用来追别人女盆友,违者必究。
1、心型图初探
1.1 带偏移的两个函数
首先是做出需要的函数:
fun <- function(up = T, d = 0){function(x){fun1 <- function(x, d){k <- (1-x^2)^(1/2)+abs(x)^(2/3)k + d}fun2 <- function(x, d){k <- -(1-x^2)^(1/2)+abs(x)^(2/3)k + d}if(up) return(fun1(x, d = d))return(fun2(x, d = d))}
}
参数说明:
– 输入参数:up = T:心型图的上部
– up = F:心型图的下部
– d:y轴的偏移量 从-inf到inf取值
– 输出参数:
– 不同的曲线函数
1.2 简单心型图
plot(fun(T, d = i/30), -1, 1, lwd = 1, xlim = c(-1,1), ylim = c(-1,3))
plot(fun(F, d = i/30), -1, 1, add = T, lwd = 1)
一个基本的图形就出来了,稍微修饰一下。改变颜色,线粗,画图区域、去掉坐标信息。
plot(fun(T, d = i/30), -1, 1, col = "red", lwd = 3,
xlim = c(-1.1,1.1), ylim = c(-0.5,2.5), xlab = "", ylab = "", axes = F)
plot(fun(F, d = i/30), -1, 1, add = T, col = "red", lwd = 3)
2、改进的心型图
这部分的改进主要是把图进行少量偏移做出立体感。
Plot()
3、动态画心型图(gif)
这部分就是利用包animation
把上述的图进行加标注然后做成gif图。
当然先是载入包,没有安装的自行安装一下。
library(animation)
然后就是把自己想说的话准备好,比如本文用的这句:今生愿我们成为彼此
。
增加长宽,减少读秒再来一份。
4、ggplot2版本的心型图
4.1数据
先是构造函数生成数据,因为不知道ggplot2直接画曲线的包,需要提前自己生成数据。
Fun <-function(x)
{y1 <- (1-x^2)^(1/2)+abs(x)^(2/3)y2 <- -(1-x^2)^(1/2)+abs(x)^(2/3)data <- data.frame(x = x,y1 = y1, y2 = y2)return(data)
}
4.2心型图初步
ggplot(data = da) +
geom_line(aes(x, y1), color="red") +
geom_line(aes(x, y2), color="red")
填充颜色
ggplot(data = da) +
geom_line(aes(x, y1), color="red") +
geom_line(aes(x, y2), color="red") +
geom_polygon(aes(x = x, y = y2, fill = 'red'), show.legend = F) +
geom_polygon(aes(x = x, y = y1, fill = 'red'), show.legend = F)
去掉主题标签
4.3原件打包
# 默认主题
TH <- list(theme_bw(), scale_x_continuous(labels = NULL),scale_y_continuous(labels = NULL), theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(), panel.border = element_blank(), axis.ticks = element_blank(), axis.title = element_blank())
)
4.4画图
ggplot(data = da) + L + TH + cl
最后再动起来。
5、总结
最后希望可以帮助大家学习R语言。水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。当然如果有更好的改进方案欢迎评论区交流。
本文的代码已整理好,实在刚需移步下面链接下载研究。
R语言可视化——动态心型图相关推荐
- c语言实现动态心型代码
//c语言动态心型的实现代码,帮助熟悉指针和程序: #include <stdio.h> #include <stdlib.h> void show( int m) {// c ...
- R语言可视化散点图、气泡图、动态气泡图、数据点重合的散点图、数据点计数图、抖动数据点图、基于lm方法或者loess方法拟合数据点之间的趋势关系曲线、自定义数据点的大小、色彩、添加主标题、副标题、题注
R语言可视化散点图.气泡图.动态气泡图.数据点重合的散点图.数据点计数图.抖动数据点图.基于
- R语言可视化学习笔记之ggridges包绘制山峦图
作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...
- R语言可视化分面图、假设检验分组t检验、可视化单变量分组分面箱图(faceting bar plot)、添加误差条(error bar)、添加p值、添加抖动数据点(jitter points)
R语言可视化分面图.假设检验分组t检验.可视化单变量分组分面箱图(faceting bar plot).添加误差条(error bar).添加p值.添加抖动数据点(jitter points) 目录
- R语言可视化斜率图、扩充图像纵横比为数据标签显示更整齐、ggrepel包来帮忙
R语言可视化斜率图.扩充图像纵横比为数据标签显示更整齐.ggrepel包来帮忙 目录
- R语言可视化散点图(scatter plot)图、为图中的部分数据点添加标签、ggrepel包来帮忙
R语言可视化散点图(scatter plot)图.为图中的部分数据点添加标签.ggrepel包来帮忙 目录
- R语言可视化:散点图、散点图和折线图(line charts)、3D散点图、旋转3D散点图、气泡图、corrgram包可视化相关性矩阵、马赛克图( Mosaic plots)、hexbin、密度图
R语言可视化:散点图.散点图和折线图(line charts).3D散点图.旋转3D散点图.气泡图.corrgram包可视化相关性矩阵.马赛克图( Mosaic plots).hexbin.密度图 目 ...
- R语言可视化分面图、假设检验分组t检验、可视化单变量分组分面箱图(faceting boxplot)并添加p值(Make facet boxplot and add p-values)、添加抖动数据点
R语言可视化分面图.假设检验分组t检验.可视化单变量分组分面箱图(faceting boxplot)并添加p值(Make facet boxplot and add p-values).添加抖动数据点 ...
- R语言可视化密度图并在密度图中嵌入图例信息、使用geomtextpath包的geom_textdensity函数,将图例(legend)信息嵌入到密度图中
R语言可视化密度图并在密度图中嵌入图例信息.使用geomtextpath包的geom_textdensity函数,将图例(legend)信息嵌入到密度图中(Density plot with dire ...
最新文章
- 原价买了二手机,我是如何做到的?
- gm怎么刷东西 rust_刷了这种黑板漆再也不用担心吃粉笔灰了
- c++ STL find search
- netcore一键nssm发布为windows服务
- linux+虚拟机上的wdcp,linux虚拟主机服务器wdcp系统教程
- evoc服务器长鸣报警显示正常,研祥工业服务器出大事了!
- linux添加了一条静态路由,为Linux新增静态路由的方法
- ES 6理解 let
- C++和C语言的区别是什么?
- ViT (Vision Transformer) ---- Transformer Model(1)
- win10 开启蓝 由于其配置信息(注册表中的)不完整或已损坏
- 18.TCP/IP 详解卷1 --- TCP 连接的建立与终止
- 在JavaFX中使用JxBrowser-Using JxBrowser in JavaFX
- 算法复杂度描述中为什么用“logn”,而不用“log2n”、“lnn”或“lgn”
- A Re-evaluation of Temporal Knowledge Graph Completion Models under a Unified Framework
- java读取共享文件_局域网共享文件读写的实现方式
- 教你分割视频,用多个视频随机合并,添加音频
- OSS对象存储之阿里云和七牛云
- pip(Python包管理工具)安装第三方库教程
- excel的vlookup如果是#N/A就显示空白