首页 > 解决方案 > 在 R 中的同一条形图上绘制多个变量

问题描述

我真的很感激这个情节的一些帮助。我对 R 非常陌生并且正在努力(在查看了许多教程之后!)以了解如何绘制以下内容:

这是我的表 X 轴表示 PatientID,Y 表示每个患者的细胞计数

我已经成功地为每个变量单独绘制了一个基本图,例如:

这是针对 2 个变量

这给了我 2 个单独的图表 总细胞计数 1 区的细胞计数

我想要一张图表上表示的所有数据......这意味着对于每个患者,将有 4 个条形图(总细胞计数和每个区域的细胞计数(1 - 3)。

我不明白我应该将其作为一个组合图还是制作 4 个不同的图然后将它们组合在一起?我也很困惑如何实际编码。我已经尝试过 ggplot 并且我已经在 R 中完成了常规的 Barplot (一次为 1 个变量工作,但不确定如何处理多个变量)。一些非常循序渐进的帮助将非常感谢这里。TIA

标签: rvariablesbar-chart

解决方案


感谢大家的帮助。我能够使情节如下:

首先,我从导入到 R 中的数据创建了一个新表:

#Make new table of patientID and tot cell count
patientID <- c("a", "b", "c")
tot_cells <- c(tot_cells_a, tot_cells_b, tot_cells_c)
tot_cells_zone1 <- c(tot_cells_a_zone1, tot_cells_b_zone1, tot_cells_c_zone1)
tot_cells_zone2 <- c(tot_cells_a_zone2, tot_cells_b_zone2, tot_cells_c_zone2)
tot_cells_zone3 <- c(tot_cells_a_zone3, tot_cells_b_zone3, tot_cells_c_zone3)
tot_cells_table <- data.frame(tot_cells, 
                          tot_cells_zone1, 
                          tot_cells_zone2, 
                          tot_cells_zone3)
rownames(tot_cells_table) <- c(patientID)

然后我这样绘制,首先将 data.frame 转换为 matrix :

#Plot "Total Microglia Counts per Patient"

tot_cells_matrix <- data.matrix(tot_cells_table, rownames.force = patientID)

par(mar = c(5, 4, 4, 10), 
xpd = TRUE)

barplot(t(tot_cells_table[1:3, 1:4]), 
    col = c("red", "blue", "green", "magenta"),
    main = "Total Microglia Counts per Patient", 
    xlab = "Patient ID", ylab = "Cell #",
    beside = TRUE)

legend("topright", inset = c(- 0.4, 0),
   legend = c("tot_cells", "tot_cells_zone1", 
              "tot_cells_zone2", "tot_cells_zone3"), 
   fill = c("red", "blue", "green", "magenta"))

图表如下所示: Barplot of multiple variables

再次感谢您为我指明正确的方向!


推荐阅读