微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

corrplot 的矩阵图

enter image description here

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

将此帖子用作圆图的 example,我已经能够绘制圆,但我正在努力将其转换为类似矩阵的图形。以下是一些示例数据:

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()

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

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

解决方法

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()

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

Plotting output

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。