提问者:小点点

如何在R中绘制矩阵中的半圆?


我正在使用R绘制一个被上调/下调的基因计数矩阵,其中y轴将是每个处理中的类别,x轴将是每个处理中的计数。这是我用corrgraph绘制的矩阵结构的示例:

按曲线绘制的矩阵图

不像上图那样在每个单元格中绘制完整的圆圈,我希望每个单元格都有一个分割的圆圈图。一半包含类型“上”值,另一半包含“下”值。

使用这篇文章作为圆圈图的示例,我已经能够绘制圆圈,但我正在努力将其变成类似矩阵的图形。这是一些示例数据:

df <- data.frame(category = rep(c("A", "B"), each = 2),
             type = rep(c("up", "down"), 4),
             treatment = rep(c("treat1", "treat2", "treat3", "treat4"), each = 4),
             count = c(19419, 1132, 8138, 947, 8349, 436, 789, 1580))

df$treatment <- as.factor(df$treatment)

library(ggplot2)
ggplot(df, aes(x=category, y=sqrt(count), fill=type)) + geom_col(width =1) +
  coord_polar(theta = "x", direction = -1) +
  facet_wrap(category~treatment) +
  theme_void()

如何将这些圆圈排列成类似矩阵的图形?如何在矩阵的每个单元格内绘制分裂的圆圈?

任何建议将不胜感激。非常感谢!!


共1个答案

匿名用户

ggplot(df, aes(x=category, y=sqrt(count), fill=type)) + geom_col(width =999, position="dodge") +
  coord_polar(theta = "x", direction = -1, start=pi/2) +
  facet_grid(category~treatment) +
  theme_void()

旋转绘图,并使上下部分在不同方向绘图