专栏首页数据驱动实践ggplot2拓展功能:添加拟合公式(Equations, R2, BIC, AIC etc.)

ggplot2拓展功能:添加拟合公式(Equations, R2, BIC, AIC etc.)

如何在图上添加拟合方程等标签

# Load packages and set theme
library(ggpubr)
library(ggpmisc)
theme_set(
  theme_bw() +
    theme(legend.position = "top")
)
# Scatter plot
p <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  geom_point(aes(color = Species), size = 3, alpha = 0.6) +
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07")) +
  scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))+
  facet_wrap(~Species)

p
  1. Add regression line, correlation coefficient and equantions of the fitted line. Key functions:
    • stat_smooth() [ggplot2]
    • stat_cor() [ggpubr]
    • stat_poly_eq()[ggpmisc]

formula <- y ~ x
p + 
  stat_smooth( aes(color = Species, fill = Species), method = "lm") +
  stat_cor(aes(color = Species), label.y = 4.4)+
  stat_poly_eq(
    aes(color = Species, label = ..eq.label..),
    formula = formula, label.y = 4.2, parse = TRUE)


Fit polynomial equation: Create some data: set.seed(4321) x <- 1:100 y <- (x + x^2 + x^3) + rnorm(length(x), mean = 0, sd = mean(x^3) / 4) my.data <- data.frame(x, y, group = c("A", "B"), y2 = y * c(0.5,2), block = c("a", "a", "b", "b")) Fit polynomial regression line and add labels: # Polynomial regression. Sow equation and adjusted R2 formula <- y ~ poly(x, 3, raw = TRUE) p <- ggplot(my.data, aes(x, y2, color = group)) + geom_point() + geom_smooth(aes(fill = group), method = "lm", formula = formula) + stat_poly_eq( aes(label = paste(..eq.label.., ..adj.rr.label.., sep = "~~~~")), formula = formula, parse = TRUE ) ggpar(p, palette = "jco")

Note that, you can also display the AIC and the BIC values using ..AIC.label.. and ..BIC.label.. in the above equation. Other arguments (label.x, label.y) are available in the function stat_poly_eq() to adjust label positions.For more examples, type this R code: browseVignettes(“ggpmisc”). 具体指引详见 http://www.sthda.com/english/articles/32-r-graphics-essentials/131-plot-two-continuous-variables-scatter-graph-and-alternatives/

本文分享自微信公众号 - 数据驱动实践(Data-driven)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言 绘图组合布局grid/layout

    par(mfrow=c(2,2)),可以理解将绘图区域分割为2x2的矩阵区域,另可参照《R语言实战》3.5图形的组合

    拴小林
  • tidyverse:R语言中相当于python中pandas+matplotlib的存在

    tidyverse就是Hadley Wickham将自己所写的包整理成了一整套数据处理的方法,包括ggplot2、dplyr、tidyr、readr、purrr...

    拴小林
  • R语言建模入门:如何理解formula中y~.和y~x:z的含义?

    背景:2019年的某月末日,三路人开局,兴趣所致组建了“花儿少年”:一个有组织、有纪律的R语言入门交流学习组织。自此,开启了一段小白&大师的成长史。

    拴小林
  • 内连接的两种方式

    在前面的文章中我们讲过两个概念,宽表和窄表,在现实业务中,数据库中很多表存储其实都是以窄表的形式来存储的,但是我们一般从数据库中获取信息的时候,都是需要同时从多...

    张俊红
  • 干货 | 论文笔记:第一人称视角视频中的行人轨迹预测

    AI 科技评论按:本文为上海交通大学林天威为 AI 科技评论撰写的独家稿件,得到了其指点和审核,AI 科技评论在此表示感谢。 视频中的人体动作分析是计算机视觉研...

    AI科技评论
  • 最详细的自定义Spring Boot Starter开发教程

    随着Spring的日渐臃肿,为了简化配置、开箱即用、快速集成,Spring Boot 横空出世。目前已经成为 Java 目前最火热的框架了。平常我们用Sprin...

    码农小胖哥
  • Spring Boot的自动配置、Command-line Runner

    接下来关于SpringBoot的一系列文章和例子,都来自《Spring Boot Cookbook》这本书,本文的主要内容是start.spring.io的使用...

    阿杜
  • Kubernetes核心概念总结

      Master节点上面主要由四个模块组成:APIServer、scheduler、controller manager、etcd。

    用户1263954
  • Spring Boot:定制HTTP消息转换器

    接下来关于SpringBoot的一系列文章和例子,都来自《Spring Boot Cookbook》这本书,本文的主要内容是start.spring.io的使用...

    java爱好者
  • 你需要了解springboot的一些基本理论

    用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml 文件创建独立的spring引用程序 main方法运行嵌入...

    lyb-geek

扫码关注云+社区

领取腾讯云代金券