数据科学与R语言

R语言实战——坐标轴标签方向(未解决)

2020-05-11  本文已影响0人  MartyLife

导言

这个问题之前在练习其他代码的时候遇到过。
可能是一种强迫症的倔强,以及出于对自己颈椎的考虑。


歪头

问题

还是第八章回归分析的内容,代码8-14 全字集回归

plot(leaps,scale="adjr2")
原图
书中的横坐标标签是横的,看上去比较正常。
然鹅,我一模一样的代码出来却是竖直的,令人费解。
学渣
回顾上一次遇到这个问题的时候,从《153分钟学会R》中找到了解答。
(或许也是自己在前面基础绘图章节没有好好看的后果吧)
153分钟学会R
las参数
las表示坐标刻度值文字方向,las=0表示文字方向与坐标轴平行,1表示始终为水平方向,2表示与坐标轴垂直,3表示始终为垂直方向。
layout(matrix(1:4,2,2))
plot(1,1,las=0)
plot(1,1,las=1)
plot(1,1,las=2)
plot(1,1,las=3)
示意图

不过在绘制全子集回归的图中,las无论怎么设置都不能改变标签的方向。

解决方案

悬而未决
在经管之家论坛发帖求助之后,有一位朋友热心解答了我的问题。leaps包不支持las参数,shame on author(原话)las中文输入法总是输出拉屎,没想到居然连拉屎都不行。我看了CSDN和其他论坛的文章,大部分照搬书中代码也是一样的问题。(可能他们的颈椎都比较好吧)
热心网友其实还是帮我修改了一下代码,但是我复制运行之后出现了bug。
提示:找不到对象'lsumcp',心碎。
(感兴趣的朋友可以去围观https://bbs.pinggu.org/thread-8263778-1-1.html
后续如果我的能力达到会回来解决的。也欢迎大家在底下评论一起讨论。

拓展

图形的组合以及还原绘图默认设置

1图形的组合

这一部分的具体内容在书中的3.5节,主要是两种方法:par()参数调整和layout()函数。
par()函数中mfrow()参数可以创建按行填充的行数为nrows、列数为ncols的图形矩阵。此外,nfcol则是按列填充矩阵

op <- par(no.readonly = T)
par(mfrow=c(2,2))
plot(1:5,1:5)
hist(mtcars$wt)
boxplot(mtcars$mpg)
示意图
op <- par(no.readonly = T)
par(mfcol=c(2,2))
plot(1:5,1:5)
hist(mtcars$wt)
boxplot(mtcars$mpg)
示意图

layout()函数通过一个矩阵指定多个图形的位置

attach(mtcars)
layout(matrix(c(1,2,3,3,4,4),3,2,byrow = T))
hist(wt)
hist(mpg)
hist(disp)
boxplot(qsec)
示意图
layout(matrix(c(1,2,3,0,3,0),3,2,byrow = T))
hist(wt)
hist(mpg)
hist(disp)
示意图

图形布局的精细控制
代码3-4提供了在上方和右侧添加图形的例子可以参考,不做赘述。

2还原绘图默认设置

参考:https://www.zhihu.com/question/54116933
在进行图形组合之前运行了下面一段代码:

opar <-par(no.readonly = T)

opar保存了par中的默认设置,在绘图结束之后运行代码可以还原默认设置

par(opar) 

但是par()与par(no.readonly = T)有什么不同呢?
前者直接保存了所有设置,总共72项
后者保存了par中可读的部分,总共66项
理论上二者皆可,但是直接运行前者可能会报错,推荐使用后者。

上一篇下一篇

猜你喜欢

热点阅读