r - 在 ggplot2 热图中添加分组
问题描述
您好,我有以下数据集:
gene_symbol <- c("DADA", "SDAASD", "SADDSD", "SDADD")
panel <- c("growth", "growth", "big", "small")
ASDDA <- c("normal", "over", "low", "over")
ASDDb <- c("normal", "over", "low", "over")
ASDDAf <- c("normal", "over", "low", "over")
Gene_states22 <- data.frame(gene_symbol, panel, ASDDA, ASDDb, ASDDAf)
除了使用以下方法创建热图之外,我还想实现什么:
library(plotly)
library(ggplot2); library(reshape2)
g <- melt(Gene_states22, id.vars = c("gene_symbol","panel"))
p1 <- ggplot(g, aes(gene_symbol,variable)) +
geom_tile(aes(fill = value), colour = "grey50") +
scale_fill_manual(values=c("white", "red", "blue"))+
labs(title = "Heatmap",x = "gene_symbol",y="sample",fill="value")+
theme(title = element_text(family = "sans serif",
size = 14,
face = "bold"),
axis.title = element_text(family = "sans serif",
size = 16,
face = "bold",
color = "black"),
axis.text = element_text(family = "sans serif",
size = 11),
axis.title.y = element_text(margin = margin(t = 0, r = 25, b = 0, l = 25)),
panel.background = element_rect(fill = NA),
panel.grid.major = element_line(colour = "grey50"))
p1
ggplotly(p1)%>%
layout(autosize = F,
width = 1450,
height = 600,
hoverlabel = list(bgcolor = "white",
font = list(family = "sans serif",
size = 9,
color = "black")))
这里有第二个 x 轴,它按“机械”、“电气”、“液压”对值进行分组。我想对panel
. 请注意,图表应该是交互式的,这就是我使用的原因ggplotly()
解决方案
推荐阅读
- python - 合并单独的数据框并复制到 Excel
- python - 矢量化函数的numpy广播
- python-3.x - Keras Conv 3d 错误层 conv3d 与层不兼容
- python-3.x - 由字符而不是换行符分隔的无限 CSV 文件
- r - 绕过 RStudion 登录屏幕
- r - dplyr::mutate 基于第二个(过滤的)数据帧的新列
- java - Java BigDecimal 除法和乘法四舍五入到小数点后两位
- php - 用 FPDF 换行
- python - 如何告诉 Python 在源文件中间停止解析?
- svelte-3 - Sapperjs 应用程序用户登录菜单而不是站点范围的菜单