我想使用ggplot2
绘制一个heatmap
,并且我想自定义x轴刻度 - 位置、文本和角度。
这是我的示例数据:
set.seed(1)
df <- reshape2::melt(matrix(rnorm(100*20),100,20,dimnames = list(paste0("G",1:100),paste0("S",1:20))))
我希望X轴标记只有一个值,位于轴范围10的中间位置,标签为“X-Label”,偏转90度。此外,我不需要X轴标题。
这是我的尝试:
library(ggplot2)
ggplot(data=df,mapping=aes(x=Var2,y=Var1,fill=value))+
geom_tile()+theme_minimal()+scale_fill_gradient2(name="Scaled Value",low="darkblue",mid="gray",high="darkred")+
scale_x_discrete(breaks=10,labels="X-Label")+theme(axis.title.x=element_blank(),axis.text.x=element_text(angle=90,hjust=1,vjust=0.5))
很显然,它没有起作用。
我以为可以将角度定义为scale_x_discrete
参数的一部分,但找不到该选项。
另外,请注意,我不想要x轴标题,只需要刻度文本。因此,我不确定为什么在scale_x_discrete
中的breaks
和labels
参数被忽略了。
这是使用plotly
的期望结果:
library(plotly)
library(dplyr)
plot_ly(z=c(df$value),x=df$Var2,y=df$Var1,colors=grDevices::colorRamp(c("darkblue","gray","darkred")),type="heatmap",colorbar=list(title="Scaled Value",len=0.4)) %>%
layout(yaxis=list(title=NULL),xaxis=list(tickangle=90,tickvals=10,ticktext="X-Label"))
感谢