关于轴和mtext的问题

时间:2013-05-16 20:22:38

标签: r axes

我在R知识中向后游泳。请帮忙!

ExampleData:

Site, Aluminum_Dissolved, Federal_Guideline
M1, 0.1, 0.4
M1, 0.2, 0.4
M1, 0.5, 0.4
M2, 0.6, 0.4
M2, 0.4, 0.4
M2, 0.3, 0.4

我有一个简单的功能:

boxplot(ExampleData$Aluminum_Dissolved ~ ExampleData$Site, col="purple", 
        par (cex.axis=2, las=2), mar=c(7,4,4,2)+0.1

X和Y轴标签:

一旦我在轴上增加了这么多的值,我的xlab和ylab就被轴文本遮挡了。

  1. 我尝试过使用:

    `mpg=c(3,1,0)` 
    

    并改变价值,但这似乎让利润率增加陷入困境

    `mar=c(7,4,4,2)+0.1`
    
  2. 我尝试完全删除xlabylab并使用mtext,但是我不能让我在轴文本之外给出与之平行的标签y轴。我试过了:

    `mtext("Dissolved Aluminum", side=2, adj=0, las)` etc....
    
  3. x轴上的45度文字:

    最后,我尝试重建我的x和y轴但没有用,我似乎无法使用SRT功能将我的x轴标签旋转45度。我试过了:

    boxplot(ExampleData$Aluminum_Dissolved ~ ExampleData$Site, col="purple",
            xaxt='n', yaxt='n', axis(2, cex.axis=2, xlab="Dissolved Aluminum"),
    axis(1, cex.axis=2, srt=45)
    

    这不起作用。我错过了什么有没有一种简单的方法可以做到这一点我很想念......

2 个答案:

答案 0 :(得分:2)

快速教程:

绘图在基础R图形中的工作方式通常被认为是“笔在纸上”模型。这意味着您调用的每个函数都会“覆盖”您在此之前创建的内容。图形参数可以通过调用par预先设置 ,也可以直接传递给绘图函数(有一些注意事项)。例如,我会这样做:

par(cex.axis=2, las=2,mar=c(7,4,4,2)+0.1)
boxplot(Aluminum_Dissolved ~ Site,data = dat, 
        col="purple",ylab = "Dissolved Aluminum",xlab = "Dissolved Aluminum")

如果你想要自定义轴,你可能会做类似的事情:

par(cex.axis=2, las=2,mar=c(7,4,4,2)+0.1)
boxplot(Aluminum_Dissolved ~ Site,data = dat, 
        col="purple",ylab = "Dissolved Aluminum",xlab = "Dissolved Aluminum",axes = FALSE)
axis(...)

pointslines之类的内容进行后续调用(在单独的行上)会分别为图表添加点或线。

par的警告是,某些参数只能通过直接调用par 来设置,而不是将它们作为命名参数传递给绘图函数。这些列表(包括mar)位于?par

答案 1 :(得分:-1)

@joran是对的 - 我想我只是弄乱了函数的顺序。尽管文本使用此代码的大小更大,但我仍然可以使用轴标签:

    boxplot(ExampleData$Aluminum_Dissolved ~ ExampleData$Site, col="purple", par(cex.axis=2, cex.lab=1.8), ylab="Dissolved Aluminum")

唯一的问题是标签非常接近文字,但没关系。