R ggplot热图,其中多行在同一图形上具有单独的图例

杰克恩

我正在尝试使用ggplot2制作一个热图,其中包含3种类型的变量,每个变量都需要自己的独立图例/比例。

我可以将它们全部绘制在一个热图中(如下图所示),但是我很难将它们分开以拥有自己的图例。我的三个类别是“得分”,“ samp1”行和其余数据。我希望它们中的每一个都具有各自范围的独立图例。

我唯一的补充是使行分数具有绿色,黄色,红色(低,中,高)配色方案,如果可以的话,可以将其包括在内。

到目前为止我所拥有的图像

这是我用来创建该图的代码

library(ggplot2)
test_data <- read.csv("test_table.csv", row.names = 1)

ggplot(test_data, aes(x=sample, y=id, fill = value)) + 
  geom_raster() + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1), # lables vertical
        strip.text.y = element_blank()) +  #remove facet bar on y 
  scale_fill_gradient(low = "darkblue", high = "lightblue") +
  ggtitle("test table") +
  facet_grid(rows = vars(test_data$category), 
             cols = vars(test_data$group), scales = "free", space="free_y") #facets to add gaps 

我已使用构面按样本和上述3个类别来分离数据。我也希望使用此分组来创建自己的图例,但是我不确定这是否可行。

单击此处下载数据(预融化)。

先感谢您。

斯蒂芬

这可以通过如下的ggnewscale软件包来实现

library(ggplot2)
library(dplyr)
library(ggnewscale)

ggplot() +
  geom_raster(data = filter(test_data, category == "1 score"), aes(x = sample, y = id, fill = value)) +
  scale_fill_gradient2(low = "green", mid = "yellow", high = "red", midpoint = 4, name = "Score") +
  new_scale_fill() +
  geom_raster(data = filter(test_data, category == "2 samp1"), aes(x = sample, y = id, fill = value)) +
  scale_fill_gradient(low = "darkblue", high = "lightblue", name = "Sample1") +
  new_scale_fill() +
  geom_raster(data = filter(test_data, category == "3 samp2"), aes(x = sample, y = id, fill = value)) +
  scale_fill_gradient(low = "darkblue", high = "lightblue", name = "Sample2") +
  ggtitle("test table") +
  facet_grid(
    rows = vars(category),
    cols = vars(group), scales = "free", space = "free_y"
  ) +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    strip.text.y = element_blank()
  )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R + ggplot:热图。如果值='X',则为特定颜色

来自分类Dev

R中的选择热图

来自分类Dev

R-使用ggplot2创建的相关热图:如何在y轴上翻转标签?

来自分类Dev

R套图的“热图”

来自分类Dev

R语言:如何使用ggplot2在一张具有回归线的图形上绘制多个矢量?

来自分类Dev

具有透明背景的R图例

来自分类Dev

带R,ggmap和ggplot的热图

来自分类Dev

R中多行的一种热编码

来自分类Dev

如何使用R绘制具有很多行(或尺寸)的雷达图?

来自分类Dev

用子图遍历R Plotly并隐藏除一个以外的所有图例

来自分类Dev

在一页上绘制4个图,在R中有一个常见图例

来自分类Dev

在R中的地理位置上生成热图

来自分类Dev

R中具有ggtext和gridtext的R中具有跨图图例的多面板图

来自分类Dev

R ggplot图例

来自分类Dev

热图/ GGPLOT R

来自分类Dev

R:具有基于组的颜色的热图,包括灰色的NA值和包括的字符

来自分类Dev

R图,在y轴上具有名称,在x轴上具有值

来自分类Dev

R:一页上有很多图,最后一张图有共同的图例

来自分类Dev

如何使用for循环在其中具有if()的情节中单独更改点?[R

来自分类Dev

R中具有分类变量和系统发生树的热图

来自分类Dev

R ggplot中具有可变颜色的多个图

来自分类Dev

R语言:如何使用ggplot2在一张具有回归线的图形上绘制多个矢量?

来自分类Dev

R中的传单上的热图颜色

来自分类Dev

带多行ggplot的R图

来自分类Dev

具有不同标题的R图例

来自分类Dev

在R中,如何使用其中存储有数字的变量在图例上显示上标?

来自分类Dev

R ggplot2:将自定义文本添加到图例和热图侧面的值计数

来自分类Dev

R:Corrplot() 热图操作?

来自分类Dev

R 中的动画热图

Related 相关文章

热门标签

归档