查看原文
其他

圣诞前送你们一朵使用ggplot画的玫瑰花

文涛聊科研 微生信生物 2022-06-25
library(tidyverse)

一只花柄

p <- ggplot() +
coord_equal(1, c(-4, 2), c(-7, 3)) +
geom_curve(aes(x = -1, y = -7, xend = 0, yend = 0),
ncp = 1000, curvature = -0.3, size = 1,
color = "olivedrab3")
p

构造叶片函数

f: 定义的一个数据转化函数;

  • xoffset :x轴位置

  • yoffset Y轴位置

geom_leaf <- function(x, xend, f, xoffset = 0, yoffset = 0,
xflip = 1, yflip = 1, ...) {

.x <- seq(x, xend, length.out = 100)
.y <- f(.x)

df <- tibble(x = c(.x, .y), y = c(.y, .x))
df$x <- xflip * df$x + xoffset
df$y <- yflip * df$y + yoffset

geom_polygon(aes(x = x, y = y), data = df, ...)
}

多加上两个叶片

f <- function(x) x^2 / 2
f1 <- function(x) x^2/5
p <- p +
geom_leaf(0, 2, f, -1.6, -4.5, 1,
fill = "olivedrab3", color = "palegreen") +
geom_leaf(0, 2, f, -1.6, -5, -1,
fill = "olivedrab3", color = "palegreen") +
geom_leaf(0, 2, f1, -1.25, -2.25, -0.5,
fill = "olivedrab3", color = "palegreen")+
geom_leaf(0, 3, f1, -1.25, -2.25, 0.5,
fill = "olivedrab3", color = "palegreen")
p

定义玫瑰花

geom_rose <- function(n, mean = c(0, 0), ...) {

.x <- mvtnorm::rmvnorm(n, mean)
df <- tibble(x = .x[, 1], y = .x[, 2])

list(
stat_density_2d(
aes(x = x, y = y, fill = stat(level)), data = df,
geom = "polygon", show.legend = FALSE, color = "grey80"),
scale_fill_gradient2(...)
)
}
p + geom_rose(1000, mean = c(0, 0),
low = "red", mid = "purple", high = "pink",
midpoint = 0.075) +
theme_void()

微生信生物简介

微生信生物已经创立三年有余了,在这几年中,感谢铁杆分析的支持,同时希望越来越多的小伙伴加入微生信生物大家庭,目前微生信交流群已经超过2000人。帮助许多小伙伴解决的大量问题。

关注统计分析和出图,关注各大组学数据分析流程和各种高级分析。专注解决尚未解决的问题,在分析领域著重创新,时间,问题解决,用于探索发现。

关注R语言,python,perl,shell等语言使用。定期分分享相关学习指南。R语言是使用的比较多的分析语言,会用大量的R语言教程。

根际互作生物学研究室 简介

根际互作生物学研究室是沈其荣教授土壤微生物与有机肥团队下的一个关注于根际互作的研究小组。本小组由袁军副教授带领,主要关注:1.植物和微生物互作在抗病过程中的作用;2 环境微生物大数据整合研究;3 环境代谢组及其与微生物过程研究体系开发和应用。团队在过去三年中在 isme J, Microbiome, PCE,SBB,Horticulture Research等期刊上发表了多篇文章。欢迎关注 微生信生物 公众号对本研究小组进行了解。

了解 交流 合作

  • 团队成员邮箱 袁军:

    junyuan@njau.edu.cn;

    文涛:

    2018203048@njau.edu.cn

  • 团队公众号:

    微生信生物 添加主编微信,或者后台留言;



主编微信


reference:


https://eric.netlify.app/2017/11/24/using-a-multivariate-normal-to-draw-a-flower-in-ggplot2/

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存