grantmcdermott · GitHub

To give you an idea, we can drop tinyAxis() algother, get a ton more flexibility and transparency, and simplify the code as follows:

      # axes, frame.plot and grid
      if (isTRUE(axes)) {
        args_x = list(x,
          side = xside,
          cex = get_tpar(c("cex.xaxs", "cex.axis"), 0.8),
          col = get_tpar(c("col.xaxs", "col.axis"), "grey90"),
          lwd = get_tpar(c("lwd.xaxs", "lwd.axis"), 0.5)
        )
        args_y = list(y,
          side = yside,
          cex = get_tpar(c("cex.yaxs", "cex.axis"), 0.8),
          col = get_tpar(c("col.yaxs", "col.axis"), "grey90"),
          lwd = get_tpar(c("lwd.yaxs", "lwd.axis"), 0.5)
        )
        type_range_x = type %in% c("pointrange", "errorbar", "ribbon", "boxplot", "p") && !is.null(xlabs)
        type_range_y = isTRUE(flip) && type %in% c("pointrange", "errorbar", "ribbon", "boxplot", "p") && !is.null(ylabs)
        if (type_range_x) {
          args_x = modifyList(args_x, list(at = xlabs, labels = names(xlabs)))
        }
        if (type_range_y) {
          args_y = modifyList(args_y, list(at = ylabs, labels = names(ylabs)))
        }
        if (isTRUE(frame.plot)) {
          # if plot frame is true then print axes per normal...
          do.call(Axis, args_x)
          do.call(Axis, args_y)
        } else {
          # ... else only print the "outside" axes.
          if (ii %in% oxaxis) do.call(Axis, args_x)
          if (ii %in% oyaxis) do.call(Axis, args_y)
        }
      }

Read the original on github.com ↗