前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2扩展功能包:ggpmisc和gginnards

ggplot2扩展功能包:ggpmisc和gginnards

作者头像
Listenlii-生物信息知识分享
发布2021-06-01 16:29:04
2K0
发布2021-06-01 16:29:04
举报
文章被收录于专栏:Listenlii的生物信息笔记

ggpmisc和gginnards两个包包含了ggplot2很多扩展的功能。

介绍其中几个实用函数。

代码语言:javascript
复制
#install.packages("gginnards")
#install.packages("ggpmisc")

library(gginnards)
library(ggpmisc)

stat_poly_eq

可以直接获得曲线拟合的方程,p值,决定系数(R^2), AIC和BIC等指标,不需要自己计算和标注了。不过只能做多项式拟合lm()的结果。

代码语言:javascript
复制
##例子
# generate artificial 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 = x, y = y,
                      group = c("A", "B"),
                      y2 = y * c(0.5,2),
                      w = sqrt(x))

# give a name to a formula
formula <- y ~ poly(x, 3, raw = TRUE)

# user specified label
ggplot(my.data, aes(x, y)) +
  geom_point() +
  geom_smooth(method = "lm", formula = formula) +
  stat_poly_eq(aes(label =  paste(stat(eq.label),
                                  stat(adj.rr.label),
                                  stat(p.value.label),
                                  sep = "*\", \"*")),
               formula = formula, 
               rr.digits = 3, coef.digits = 4,
               parse = TRUE)

geom_linked_text

花式加标签

代码语言:javascript
复制
##例子
my.cars <- mtcars[c(TRUE, FALSE, FALSE, FALSE), ]
my.cars$name <- rownames(my.cars)
p <- ggplot(my.cars, aes(wt, mpg, label = name))

p +
  geom_point() +
  geom_linked_text(aes(colour = factor(cyl)),
                   hjust = -0.04, nudge_x = 0.12,
                   vjust = -0.2, nudge_y = 0.5,
                   size = 4,
                   check_overlap = TRUE, # avoid overlap
                   arrow = arrow(length = grid::unit(1.5, "mm"))) +
  expand_limits(x = 6.2)

geom_table

插入表格

代码语言:javascript
复制
##例子
library(dplyr)
library(tibble)

mtcars %>%
  group_by(cyl) %>%
  summarize(wt = mean(wt), mpg = mean(mpg)) %>%
  ungroup() %>%
  mutate(wt = sprintf("%.2f", wt),
         mpg = sprintf("%.1f", mpg)) -> tb

df <- tibble(x = 5.45, y = 34, tb = list(tb))

ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
  geom_point() +
  geom_table(data = df, aes(x = x, y = y, label = tb),
             table.rownames = TRUE, table.theme = ttheme_gtstripes)

stat_fit_tb

对多种模型进行拟合并返回拟合结果; 对拟合结果做ANOVA

代码语言:javascript
复制
library(broom)

# data for examples
x <- c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1)
covariate <- sqrt(x) + rnorm(9)
group <- factor(c(rep("A", 4), rep("B", 5)))
my.df <- data.frame(x, group, covariate)

# Linear regression fit summary, by default
ggplot(my.df, aes(covariate, x)) +
  geom_point() +
  stat_fit_tb(digits = 2, p.digits = 4) +
  expand_limits(y = 70)

其他还有很多功能,自行探索吧~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Listenlii 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • stat_poly_eq
  • geom_linked_text
  • geom_table
  • stat_fit_tb
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档