如何增大image.plot函数生成图中色标(colorbar)的字体大小?
调整image.plot()色标字体大小的方法
我使用image.plot()函数绘制空间图,图中色标的字体过小,无法满足发表需求,但这个函数不是常规绘图函数,不清楚调整方法。
我的代码如下:
image.plot(lon,lat,tas_slice, col=colorscale,breaks=brks,lab.breaks=brks, xaxt="n", yaxt="n", ann=FALSE,horizontal=T,cex=4) map(database="world", add=TRUE) axis(side=1, at=seq(-10,40,10), labels=lon_labels,las=1) axis(side=2, at=seq(40,70,10), labels=lat_labels,las=1) # 添加经纬度到地图 # abline(h=seq(-80,80,10), v=seq(-180,177.5,10), lty=2) title(main=paste(SEA[fileno],proj,param,model,time_per[fileno], sep=" "), line=2,cex.lab=3, cex.axis=3, cex.main=3, cex.sub=3) mtext("[°C]", side=1, line=3.5,cex=1.5)
色标字体过小的示例图:
解决方法
image.plot()属于fields包,调整色标字体大小可以通过以下两种方式:
方法1:直接使用cex.axis参数
这个参数专门控制色标的刻度字体大小,直接添加到image.plot()的参数列表中即可:
image.plot(lon,lat,tas_slice, col=colorscale,breaks=brks,lab.breaks=brks, xaxt="n", yaxt="n", ann=FALSE,horizontal=T, cex.axis=3) # 调整数值控制字体大小 map(database="world", add=TRUE) axis(side=1, at=seq(-10,40,10), labels=lon_labels,las=1, cex.axis=3) axis(side=2, at=seq(40,70,10), labels=lat_labels,las=1, cex.axis=3) title(main=paste(SEA[fileno],proj,param,model,time_per[fileno], sep=" "), line=2,cex.lab=3, cex.axis=3, cex.main=3, cex.sub=3) mtext("[°C]", side=1, line=3.5,cex=1.5)
方法2:用axis.args精细化控制
如果需要同时调整刻度的方向、颜色等属性,可以通过axis.args传递参数列表:
image.plot(lon,lat,tas_slice, col=colorscale,breaks=brks,lab.breaks=brks, xaxt="n", yaxt="n", ann=FALSE,horizontal=T, axis.args=list(cex.axis=3, las=1, col.axis="black"))
注:你之前使用的cex=4参数对色标字体的控制优先级低于cex.axis,直接使用cex.axis更有效。
内容的提问来源于stack exchange,提问作者kettaren ray
相关产品推荐
相关产品推荐

