数据概览图

作者

[编辑] 郑虎;

[审核] .

注记

Hiplot 网站

本页面为 Hiplot Visdat 插件的源码版本教程,您也可以使用 Hiplot 网站实现无代码绘图,更多信息请查看以下链接:

https://hiplot.cn/basic/visdat?lang=zh_cn

环境配置

  • 系统: Cross-platform (Linux/MacOS/Windows)

  • 编程语言: R

  • 依赖包: visdat; ggplot2; dplyr; patchwork

# 安装包
if (!requireNamespace("visdat", quietly = TRUE)) {
  install.packages("visdat")
}
if (!requireNamespace("ggplot2", quietly = TRUE)) {
  install.packages("ggplot2")
}
if (!requireNamespace("dplyr", quietly = TRUE)) {
  install.packages("dplyr")
}
if (!requireNamespace("patchwork", quietly = TRUE)) {
  install.packages("patchwork")
}

# 加载包
library(visdat)
library(ggplot2)
library(dplyr)
library(patchwork)

数据准备

# 加载数据
data <- read.delim("files/Hiplot/182-visdat-data.txt", header = T)

# 查看数据
head(data)
  RowNames Ozone Solar.R Wind Temp Month Day
1        1    41     190  7.4   67     5   1
2        2    36     118  8.0   72     5   2
3        3    12     149 12.6   74     5   3
4        4    18     313 11.5   62     5   4
5        5    NA      NA 14.3   56     5   5
6        6    28      NA 14.9   66     5   6

可视化

# 数据概览图
add_palette <- function (p) {
  ## 添加配色
  p <- p + scale_fill_manual(values = c("#3B4992FF", "#EE0000FF"))
}
pobj <- list()
pobj[["p1"]] <- add_palette(vis_dat(data)) + ggtitle(':vis_dat')
pobj[["p2"]] <- add_palette(vis_guess(data)) + ggtitle(':vis_guess')
pobj[["p3"]] <- vis_miss(data, cluster = T, sort_miss = T) + ggtitle(':vis_miss')
pobj[["p4"]] <- add_palette(vis_expect(data, ~.x >= 20 )) + ggtitle(':vis_expect')
pobj[["p5"]] <- vis_cor(data) + 
  scale_fill_gradientn(colours = c("#0571B0", "#92C5DE", "#F4A582", "#CA0020")) +
  ggtitle(':vis_cor')
pobj[["p6"]] <- data %>%
      select_if(is.numeric) %>%
      vis_value() + ggtitle(':vis_value')
pobj[["p6"]] <- pobj[["p6"]] + 
  scale_fill_gradientn(colours = c("#0571B0","#92C5DE","#F7F7F7","#F4A582",
                                   "#CA0020"))

pstr <- paste0(sprintf("pobj[[%s]]", 1:length(pobj)), collapse = " + ")
p <- eval(parse(text = 
  sprintf("%s + plot_layout(ncol = 2) +
plot_annotation(tag_levels = 'A')", pstr)))

p
图 1: 数据概览图