美文网首页
R: 公式成曲线

R: 公式成曲线

作者: 胡童远 | 来源:发表于2021-08-09 17:59 被阅读0次

1 默认plot(来自参考)

创建函数

# Create own functions
my_fun1 <- function(x) { x^3 - x * 300 }           
my_fun2 <- function(x) { x^3 * 2 + x^2 + x * 10 + 5 * 10^10 }
my_fun3 <- function(x) { - x^3 + x^2 - 2 * 10^10 }

plot 保存

pdf("test_plot.pdf")
curve(my_fun1, from = -5000, to = 5000, col = 2)  # Draw Base R plot
curve(my_fun2, from = -5000, to = 5000, col = 3, add = TRUE)
curve(my_fun3, from = -5000, to = 5000, col = 4, add = TRUE)
dev.off()

2 ggplot(来自参考)

统合公式,ggplot准备

library("ggplot2") 
# Create data for ggplot2
data_fun <- data.frame(x = -5000:5000,            
                       values = c(my_fun1(-5000:5000),
                                  my_fun2(-5000:5000),
                                  my_fun3(-5000:5000)),
                       fun = rep(c("fun1", "fun2", "fun3"), 
                       each = 10001))
head(data_fun)

ggplot

# Draw ggplot2 plot
ggplot(data_fun, aes(x, values, col = fun)) +
  geom_line()

3 一个ggplot绘制公式曲线案例

函数参数

a1 = 4319.64; b1 = 0.229837
a2 = 2486.19; b2 = 0.157168
a3 = 2015.95; b3 = 0.185205

写好函数

my_fun1 <- function(x) {a1 * x^b1}
my_fun2 <- function(x) {a2 * x^b2}
my_fun3 <- function(x) {a3 * x^b3}

普通曲线

curve(my_fun1, from = 0, to = 16, col = 2)
curve(my_fun2, from = 0, to = 22, col = 3, add = TRUE)
curve(my_fun3, from = 0, to = 16, col = 4, add = TRUE)

准备ggplot数据框

准备x,用函数计算y,ggplot line即可出结果

library("ggplot2") 
data <- data.frame(x = c(1:16,
                         1:22,
                         1:16),            
                       values = c(my_fun1(1:16),
                                  my_fun2(1:22),
                                  my_fun3(1:16)),
                       fun = c(rep("Escherichia flexneri", 16),
                               rep("Enterococcus faecalis", 22),
                               rep("Lactobacillus amylovorus", 16)))

准备标签和颜色

genomes = c("Escherichia flexneri",
"Limosilactobacillus reuteri",
"Enterococcus faecalis")
genomes = factor(genomes, levels = genomes)

col_list = read.table("C:/Users/hutongyuan/Desktop/group_color.list",sep="\t", check.names=F, na.string="", stringsAsFactors=F, quote="", comment.char="")
colors = col_list$V1[1:3]
names(colors) <- genomes

ggplot
技巧
1 scale_x_continous 设置x轴标签
2 scale_color_manual 使用配置颜色
3 theme(legend.posiotn = c()) 任意设置legend位置

pic = 
ggplot(data, aes(x, values, col = fun)) +
  geom_line(size = 1) +
  theme_classic() +
  labs(x = "Number of Genomes", 
       y = "Number of Pangenome Families", 
       color = "") +
  theme(legend.text = element_text(size=15),
        legend.title = element_text(face='bold', size=20),
        legend.position = c(0.75, 0.7),
        legend.background = element_rect(color = "black",
                                         linetype = "solid", 
                                         size = 1)) +
  theme(axis.text.x = element_text(size = 15),
        axis.text.y = element_text(size = 18),
        axis.title = element_text(size = 22),
        axis.line = element_line(size = 1),
        axis.ticks = element_line(size = 1)) +
  scale_color_manual(values = colors) +
  scale_x_continuous(limits = c(1, 50),
                     breaks = c(1, 10, 20, 30, 40, 50))

ggsave(pic, filename = "all_pan_curve_test.pdf", width = 8)

参考:
Draw Multiple Function Curves to Same Plot in R (2 Examples)
R语言作图:数学公式 【公式书写】

相关文章

  • R: 公式成曲线

    1 默认plot(来自参考) 创建函数 plot 保存 2 ggplot(来自参考) 统合公式,ggplot准备 ...

  • 双曲线

    双曲线的概念与方程 双曲线的几何性质 双曲线的焦半径公式 双曲线的第二定义 双曲线的焦点三角形面积公式 双曲线的焦...

  • 【资料分析增长率必考公式】

    公式一:隔年增长率公式:r=(1+r1)(1+r2)-1=r1+r2+r1×r2; 公式二:相邻两年比重差:(A/...

  • 自定义 view—贝塞尔曲线的简易玩法

    公式 关于贝塞尔曲线的定义大家可以看贝塞尔曲线的百度百科 线性公式线性公式 二次方公式二次方公式 三次方公式三次方...

  • Flutter之 贝塞尔曲线(一)

    贝塞尔曲线简介 一阶贝塞尔曲线 公式 二阶贝塞尔曲线 对于二阶贝塞尔曲线,其实你可以理解为:在上利用一阶公式求出点...

  • 水波纹 波浪效果

    公式: 主要是用到正弦曲线公式为: y=Asin(ωx+φ)+kprivate var A: CGFloat = ...

  • 一万次练习定律学习分享

    我们的知识和技能是多个S型曲线叠加,最终形成的指数增长,他的基本单元是非常简单的,就是一个一个的S型曲线,公式:成...

  • Bezier曲线

    通过数学公式描述一个曲线的路径和状态,将一个曲线转成一个我们能表达出来的数学公式。 二阶Bezier曲线:quad...

  • Bezier曲线切割

    贝塞尔曲线 目标:在unity中展示Bezier曲线。 贝塞尔曲线原理 用代码实现 bezier数学公式 Bezi...

  • 二阶贝塞尔曲线与 cc.Bezier

    二阶贝塞尔曲线公式如下: 看起来有一点抽象,我们来推导一下二阶贝塞尔曲线的公式,如下图: 二阶贝塞尔曲线的原理是,...

网友评论

      本文标题:R: 公式成曲线

      本文链接:https://www.haomeiwen.com/subject/bchzvltx.html