偏差图

作者

[编辑] 郑虎;

[审核] .

偏差图可以直观地展示出数据之间的差异。

环境配置

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

  • 编程语言: R

  • 依赖包: ggpubr

# 安装包
if (!requireNamespace("ggpubr", quietly = TRUE)) {
  install.packages("ggpubr")
}

# 加载包
library(ggpubr)

数据准备

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

# 整理数据格式
data[["z_score"]] <- (data[["mpg"]] - mean(data[["mpg"]])) / sd(data[["mpg"]])
data[["Group"]] <- factor(ifelse(data[["z_score"]] < 0, "low", "high"),
                          levels = c("low", "high")
                          )

# 查看数据
head(data)
   mpg cyl disp  hp drat    wt  qsec vs am gear carb              name
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4         Mazda RX4
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4     Mazda RX4 Wag
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1        Datsun 710
4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1    Hornet 4 Drive
5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 Hornet Sportabout
6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1           Valiant
     z_score Group
1  0.1508848  high
2  0.1508848  high
3  0.4495434  high
4  0.2172534  high
5 -0.2307345   low
6 -0.3302874   low

可视化

# 偏差图
p <- ggbarplot(data,
    x = "name",
    y = "z_score",
    fill = "Group",
    color = "white",
    sort.val = "desc",
    sort.by.groups = FALSE,
    x.text.angle = 90,
    xlab = "name",
    ylab = "mpg",
    rotate = TRUE
  ) +
  scale_fill_manual(values = c("#e04d39","#5bbad6")) +
  theme_bw() +
  theme(text = element_text(family = "Arial"),
        plot.title = element_text(size = 12,hjust = 0.5),
        axis.title = element_text(size = 12),
        axis.text = element_text(size = 10),
        axis.text.x = element_text(angle = 0, hjust = 0.5,vjust = 1),
        legend.position = "right",
        legend.direction = "vertical",
        legend.title = element_text(size = 10),
        legend.text = element_text(size = 10))

p
图 1: 偏差图