【发布时间】:2018-11-13 18:05:02
【问题描述】:
我想使用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"))
谢谢
【问题讨论】:
-
由于您的描述不太清楚,您能发布想要的结果吗?这可能涉及使用图像软件为我们绘制草图:Paint、Paintbrush、Pinta 等。
标签: r ggplot2 axis-labels