绘图技巧 | 快速绘制矩阵可视化统计图表技巧



公众号后台回复“图书“,了解更多号主新书内容
     作者:宁海涛
     来源:DataCharm

今天这篇推文小编给大家介绍一下各种矩阵图的绘制,让你用可视化方式展现变量之间的关系。R-GGally包就可以轻松绘制配对图矩阵、散点图矩阵、平行坐标图和生存图等。主要内容如下:

  • R-GGally包简介

  • R-GGally包主要函数示例

R-GGally包简介

作为R-ggplot2的拓展包,其可以通过添加定义好的绘图函数绘制例如散点图矩阵、平行坐标图等统计图表。

  1. 官网

https://ggobi.github.io/ggally/index.html

  1. 主要绘图函数简介

  • ggmatrix():用于管理矩阵状布局中的多图的绘图函数,其可适应任何数量的行和列。

  • ggpairs():作为ggmatrix()的一种特殊形式,可实现对多元数据进行成对比较。默认情况下,ggpairs()提供每对列的两次不同比较,并沿对角线显示相应变量的密度或计数。通过不同的参数设置,可将对角线替换为轴值或者变量标签。

  • ggduo():在绘图矩阵中用于显示两个分组数据,比较适用于多时间序列分析和回归分析。

  • ggally_()*: 用于绘制多种高级图表。

  • ggbivariate():用于地绘制一个结果和几个解释变量之间的双变量关系的可视化图。

  • ggnostic():用于显示每个给定解释变量的完整模型诊断。

  • ggscatmat():用于数字矩阵图绘制。

  • ggtable():用于绘制绘制离散变量的交叉表。

  • ggcoef_model():用于绘制模型的系数。

  • ggnetworkmap():用于绘制各种精美的地图。

以上就是R-GGally包较为常用的绘图包,接下来,小编将通过具体例子进行讲解,当然包括定制化美化操作哈~

R-GGally包主要函数示例

  1. ggmatrix()绘图函数

plotList <- list()
for (i in 1:6) {
  plotList[[i]] <- ggally_text(paste("Plot #", i, sep = ""),color = I("#0057FF"))
}
#可视化绘制
ggmatrix <- GGally::ggmatrix(
      plotList,
      nrow = 2, ncol = 3,
      xAxisLabels = c("A", "B", "C"),
      yAxisLabels = c("D", "E"),
      title = "Matrix Title",
      byrow = FALSE) +
    labs(
        title = "Example of <span style='color:#D20F26'>GGally::ggmatrix function</span>",
        subtitle = "processed charts with <span style='color:#1A73E8'>ggmatrix()</span>",
        caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
    hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
    theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",face = 'bold',
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12))
Example of ggmatrix
  1. ggpairs()绘图函数

data(tips, package = "reshape")
ggpairs <- GGally::ggpairs(tips, mapping = aes(fill = sex,color=sex), 
                   columns = c("total_bill", "time", "tip")) +
  ggsci::scale_fill_jco() +
  ggsci::scale_color_jco() +
  labs(
        title = "Example of <span style='color:#D20F26'>GGally::ggpairs function</span>",
        subtitle = "processed charts with <span style='color:#1A73E8'>ggpairs()</span>",
        caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
    #hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
    theme_bw(base_family = "Roboto Condensed")+
    theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",face = 'bold',
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12))
Example of ggpairs
  1. ggally_*系列

  • ggally_cross()

plot01 <- ggally_cross(tips, aes(x = day, y = smoker, fill = smoker)) +
   ggsci::scale_fill_jco() +
  labs(
        title = "Example of <span style='color:#D20F26'>GGally::ggally_cross function</span>",
        subtitle = "processed charts with <span style='color:#1A73E8'>ggally_cross()</span>",
        caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
    hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
    theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",face = 'bold',
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12))
Example of ggally_cross
  • ggally_densityDiag()

plot02 <- ggally_densityDiag(tips, aes(x = day, fill = time)) +
  ggsci::scale_fill_jco() +
  labs(
        title = "Example of <span style='color:#D20F26'>GGally::ggally_densityDiag function</span>",
        subtitle = "processed charts with <span style='color:#1A73E8'>ggally_densityDiag()</span>",
        caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
    hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
    theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",face = 'bold',
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12))
Example of ggally_densityDiag
  1. ggbivariate()绘图函数

ggbivariate <- ggbivariate(tips, outcome = "smoker", 
                           explanatory = c("day", "time", "sex", "tip"),
                           rowbar_args = list(
                                            colour = "white",
                                            size = 3,
                                            fontface = "bold",
                                            label_format = scales::label_percent(accurary = 1)
                                          )) +
  ggsci::scale_fill_jco() +
  labs(
        title = "Example of <span style='color:#D20F26'>GGally::ggbivariate function</span>",
        subtitle = "processed charts with <span style='color:#1A73E8'>ggbivariate()</span>",
        caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
    #hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
    theme_light(base_family = "Roboto Condensed") +
    theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",face = 'bold',
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12))
Example of ggbivariate
  1. ggnostic()绘图函数

# 构建模型
flea_model <- step(lm(head ~ ., data = flea), trace = FALSE)
ggnostic <- ggnostic(flea_model) +
  labs(
        title = "Example of <span style='color:#D20F26'>GGally::ggnostic function</span>",
        subtitle = "processed charts with <span style='color:#1A73E8'>ggnostic()</span>",
        caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
    #hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
    theme_light(base_family = "Roboto Condensed") +
    theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",face = 'bold',
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12))

Example of ggnostic
  1. ggcoef_model()绘图函数

library(labelled)
# 数据处理
tips_labelled <- tips %>%
  labelled::set_variable_labels(
    day = "Day of the week",
    time = "Lunch or Dinner",
    total_bill = "Bill's total"
  )

mod_labelled <- lm(tip ~ day + time + total_bill, data = tips_labelled)
ggcoef_model <- ggcoef_model(mod_labelled,colour_guide = TRUE) +
ggsci::scale_color_aaas() +
   labs(
        title = "Example of <span style='color:#D20F26'>GGally::ggcoef_model function</span>",
        subtitle = "processed charts with <span style='color:#1A73E8'>ggcoef_model()</span>",
        caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
    #hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
    theme_light(base_family = "Roboto Condensed") +
    theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",face = 'bold',
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12))
Example of ggcoef_model()

以上就是小编汇总的R-GGally包常用的绘图函数,更多样例和使用语法,感兴趣的小伙伴可去官网进行查阅。

总结

这篇推文,小编简单介绍了“矩阵类”多变量可视化图表,可以看出R-GGally包绘制类似的可视化图表非常方便(大部分图表一行代码就可搞定),当然,小编介绍的只是最基本的,更多内容,大家可查询官网获取相关资料哈~~

◆ ◆ ◆  ◆ ◆麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:






数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值