r - 在 R 中的同一条形图上绘制多个变量
问题描述
我真的很感激这个情节的一些帮助。我对 R 非常陌生并且正在努力(在查看了许多教程之后!)以了解如何绘制以下内容:
这是我的表 X 轴表示 PatientID,Y 表示每个患者的细胞计数
我已经成功地为每个变量单独绘制了一个基本图,例如:
我想要一张图表上表示的所有数据......这意味着对于每个患者,将有 4 个条形图(总细胞计数和每个区域的细胞计数(1 - 3)。
我不明白我应该将其作为一个组合图还是制作 4 个不同的图然后将它们组合在一起?我也很困惑如何实际编码。我已经尝试过 ggplot 并且我已经在 R 中完成了常规的 Barplot (一次为 1 个变量工作,但不确定如何处理多个变量)。一些非常循序渐进的帮助将非常感谢这里。TIA
解决方案
感谢大家的帮助。我能够使情节如下:
首先,我从导入到 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
再次感谢您为我指明正确的方向!
推荐阅读
- c# - 使 GridSplitter 跨行工作
- python - Distutils:构建多个共享方法的 Python 扩展模块(用 Swig 编写)
- sql - Oracle - 通过 CONNECT BY LEVEL 循环通过日期范围列表
- javascript - Javascript If 语句中的多个条件
- java - spring 中使用不同事务管理器的嵌套事务
- python - 重采样(上采样、插值)一系列数字
- arrays - 内含二维积分的矢量化函数
- php - Paypal IPN 的这两个安全要求有什么区别?
- docker - 在 Dockerfile 中有条件地使用 root 用户
- python - pydub append - 引擎盖下行为的澄清