我想制作一个双向图,我想减小x轴上文本的大小。所以我正在寻找cex.axis的替代品。我尝试使用cexlab.axis,但它改变了y轴值。我也尝试完全抑制x轴,然后通过指定
来自定义x轴 twoord.plot(lx=1:96, ly=mean_aod, rx=1:96, ry=tot_FCH,type=c("b","bar"),xaxt="n")
axis(1, at = seq(1, 96, by = 1),srt=45, cex.axis=0.5)
但是这并没有摆脱由twoord.plot绘制的默认标签。基本上我希望x轴标签在96个刻度标记的每一个上都是1到96。我最接近的是指定一个从1到96的变量月份,然后运行下面的代码。
twoord.plot(lx=1:96, ly=mean_aod, rx=1:96, ry=tot_FCH,type=c("b","bar"), xticklab=month)
但是每个标签的尺寸太大而且并非所有标签都显示出来。我怎么能纠正这个?非常感谢提前。
答案 0 :(得分:2)
查看page(twoord.plot)
我们看到twoord.plot
调用plot
时,参数axes
已经 - 已经设置为FALSE
并且轴由致电axis
。因此,xaxt
不会产生任何影响。
但事实上,代码中写的是:axis(1, ... **cex** = axilsab.cex
。但是在cex
中设置axis
将不会产生预期效果;应该使用cex.axis
代替。但是,对于轴2和4,通过调用axilslab.cex
使用mtext
参数。例如。 mtext(axat, 2... cex = axislab.cex
;这里cex
(在mtext
内)具有预期的效果。
结束语,您可以编写一个函数twoord.plot2
,在调用cex
时将cex.axis
参数更改为axis(1...
。然后通过调用twoord.plot2
来运行您的代码。即axis(1,... **cex.axis** = axislab.cex)
。
修改强>
我将在原始x_axislab.cex
中添加twoord.plot
参数,以便更改仅 x轴'标记的大小:
将page(twoord.plot)
中的所有内容复制粘贴到文本编辑器中,并将其命名为twoord.plot2
。然后添加一个额外的参数并更改函数体:
twoord.plot2 <- #function (lx, ly, rx, ry, data = NULL, xlim = NULL, lylim = NULL,
#rylim = NULL, mar = c(5, 4, 4, 4), lcol = 1, rcol = 2, xlab = "",
#ylab = "", rylab = "", lpch = 1, rpch = 2, type = "b", xtickpos = NULL,
#xticklab = NULL, halfwidth = 0.4, axislab.cex = 1,
**x_axislab.cex = 1**, # do.first = NULL,
# ...) #add argument `x_axislab.cex = 1` in the arguments of the original `twoord.plot`
#{
# if (!is.null(data)) {
# ly <- unlist(data[ly])
#...everything else...
#if (is.null(xticklab))
axis(1, **cex.axis = x_axislab.cex**) #change here. it was **cex = axislab.cex**
# else {
#if (is.null(xtickpos))
#xtickpos <- 1:length(xticklab)
# if (is.null(xticklab))
# xticklab <- xtickpos
axis(1, at = xtickpos, labels = xticklab, **cex.axis = x_axislab.cex**) #change here. it was **cex = axislab.cex**
#.....everything else...
然后将您的功能复制粘贴到R
并运行类似:
twoord.plot2(...other arguments..., x_axislab.cex = 0.8)
绘制数据并更改x轴'刻度线的大小。