0

我想制作一个二阶图,我想在 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)

但是每个标签的尺寸太大,并没有显示所有标签。我该如何纠正这个问题?提前谢谢了。

4

1 回答 1

2

看一下,page(twoord.plot)我们看到在调用twoord.plotplot,参数axes已经设置为FALSE,并且轴是通过调用来构建的axis。所以,xaxt不会有任何影响。

但问题是,代码中写的是:axis(1, ... **cex** = axilsab.cex. 但是设置不会有预期的效果cex;应改为使用。但是,对于轴 2 和 4,参数通过调用来使用。例如; 这里(inside ) 具有预期的效果。axiscex.axisaxilslab.cexmtextmtext(axat, 2... cex = axislab.cexcexmtext

最后,您可以编写一个函数,在调用时将参数twoord.plot2更改为。然后通过调用运行您的代码。即。cexcex.axisaxis(1...twoord.plot2axis(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 轴刻度线的大小。

于 2013-10-18T13:41:29.697 回答