# 安装包
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
# 加载包
library(ggplot2)
自定义热图
自定义热图,按照给定数据直接绘制热图。
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
ggplot2
数据准备
案例数据为hiplot.org官方logo的灰度图像。
# 加载数据
<- read.delim("files/Hiplot/034-custom-heat-map-data.txt", header = T)
data
# 整理数据格式
<- as.matrix(data[, 2:ncol(data)])
draw_data <- nrow(draw_data)
row_num <- ncol(draw_data)
col_num <- colnames(data)
col_labels <- col_labels[2:ncol(data)]
col_labels <- data$name
row_labels rm(data)
<- expand.grid(row = 1:row_num, col = 1:col_num)
df $value <- c(draw_data)
df
# 查看数据
head(df)
row col value
1 1 1 236
2 2 1 236
3 3 1 236
4 4 1 236
5 5 1 236
6 6 1 236
可视化
# 自定义热图
<- ggplot(df, aes(x = col, y = row, fill = value)) +
p geom_point(shape = 21, size = 8, aes(fill = value), color = "white") +
scale_fill_gradient(low = "#DDDDDD", high = "#0000F5") +
guides(fill = guide_colorbar(title = "Value")) +
theme(
panel.background = element_rect(fill = "white"),
panel.grid = element_blank(),
axis.text = element_text(size = 10),
axis.ticks = element_blank(),
axis.title = element_blank()
+
) scale_x_continuous(breaks = 1:col_num, labels = col_labels, position = "top") +
scale_y_reverse(breaks = 1:row_num, labels = row_labels, position = "left")
p
