4
ggplot2でヒートマップを描画しています。 y軸上のいくつかのティックにラベルを付ける必要があります。しかし、それらのいくつかは近すぎて重複しています。私はggrepelがテキストラベルを分けることができると知っていますが、現在私は自分の問題を解決していません。ggrepelで軸ラベルの重なりを避けることはできますか?
私のコードは以下の通りです。どんな提案も大歓迎です。ありがとう。
コード:この種の問題のために
df <- data.frame()
for (i in 1:50){
tmp_df <- data.frame(cell=paste0("cell", i),
gene=paste0("gene", 1:100), exp = rnorm(100), ident = i %% 5)
df<-rbind(df, tmp_df)
}
labelRow=rep("", 100)
for (i in c(2, 5, 7, 11, 19, 23)){
labelRow[i] <- paste0("gene", i)
}
library(ggplot2)
heatmap <- ggplot(data = df, mapping = aes(x = cell, y = gene, fill = exp)) +
geom_tile() +
scale_fill_gradient2(name = "Expression") +
scale_y_discrete(position = "right", labels = labelRow) +
facet_grid(facets = ~ident,
drop = TRUE,
space = "free",
scales = "free", switch = "x") +
scale_x_discrete(expand = c(0, 0), drop = TRUE) +
theme(axis.line = element_blank(),
axis.ticks = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_text(),
axis.title.x = element_blank(),
axis.text.x = element_blank(),
strip.text.x = element_text(angle = -90))
heatmap
あなたの元data.frameがrow.namesとcol.namesを持っている場合は、1が、ラベルを追加する必要は=のようなNULL:scale_x_discrete(拡大=のC(0、0)、ドロップ= TRUE、ラベル= NULL)+ scale_y_discrete(展開= c(0、0)、drop = TRUE、labels = NULL)。 – PengY