如何使 y 轴标签水平但保持 y-axis 标题平行?

How to make y axis labels horizontal but keep y-axis title parallel?

我想让我的 y 轴标签水平,同时保持我的 y 轴标题平行。 当我尝试将 las=1 输入 twoor.plot() 参数时,没有任何反应。我也试过 ylas=1, y_las=1, lylas=1, rylas=1, 没有任何反应。我能够使我的 yaxis 标签水平的唯一方法是使用 par(las=1),但这会使我的 y-axis 标题也水平,这是我不想要的...

到目前为止,这是我的代码:

  par(las=1)
    yFrequency <- c(0,20,40,60,80,100,120,140,160)
    GS_class_labels <- c("<2", "2-4", "4-8", "8-16", "16-32", "32-64", "64-128", "128<")
    twoord.plot(data=distribution,lx="Var1",ly="Freq", ry="cum_percentile",
                main="B1 Surface Grain Size Distribution",
                xlim=NULL,lylim=c(0,160),rylim=NULL,lwd=1.5,
                lcol=1,rcol=2,xlab="Grain Size (mm)",lytickpos=yFrequency, 
                ylab="Frequency",ylab.at=NA,
                rytickpos=NA,rylab="Percent Finer Than (%)",rylab.at=NA,
                lpch=1,rpch=2,
                type="b",xtickpos=NULL,xticklab=GS_class_labels,
                halfwidth=0.4,axislab.cex=1.1,
                do.first=NULL,xaxt="s", yticklab=yFrequency, cex.lab=1)

另一种设置 y 轴标签平行的方法如下。 (1) 将twoord.plot中的ylabrylab都设置为空。 (2) 使用mtext并相应地设置参数。

这是执行该操作的代码。因为您没有提供 distribution 数据,所以我使用 iris 数据只是为了能够生成绘图。

# Emptying both of ylab and rylab

twoord.plot(data = iris,lx="Sepal.Length",ly="Petal.Width", ry="Sepal.Width",
            main="B1 Surface Grain Size Distribution",
            xlim=NULL,lylim=c(0,160),rylim=NULL,lwd=1.5,
            lcol=1,rcol=2,xlab="Grain Size (mm)",lytickpos=yFrequency, 
            ylab="",ylab.at=NA,
            rytickpos=NA,rylab="",rylab.at=NA,
            lpch=1,rpch=2,
            type="b",xtickpos=NULL,xticklab=GS_class_labels,
            halfwidth=0.4,axislab.cex=1.1,
            do.first=NULL,xaxt="n",yaxt="n", #yticklab=yFrequency, 
            cex.lab=1)

# Assign the previous labels of ylab and rylab to the *text* parameter of *mtext*. 
# side = 2 means the left side. side = 4 means the right side.
# las = 0 is the parallel style of the text. 
# line shows the distance of the text from the y axis. 

mtext(text = "Frequency", side = 2, las = 0, line = 2.5)
mtext(text = "Percent Finer Than (%)", side = 4, las = 0, line = 0.5)

结果图: