我正在尝试使用 par 函数组合多个图。这些图由 sjPlot 函数 sjp.likert() 生成。
我使用来自 sjPlot 包本身的两个示例图并尝试将它们组合起来:
likert_2 <- data.frame(as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.3,0.7))),
as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.6,0.4))),
as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.25,0.75))),
as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.9,0.1))),
as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.35,0.65))))
levels_2 <- list(c("Disagree", "Agree"))
likert_4 <- data.frame(as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.2,0.3,0.1,0.4))),
as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.5,0.25,0.15,0.1))),
as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.25,0.1,0.4,0.25))),
as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.1,0.4,0.4,0.1))),
as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.35,0.25,0.15,0.25))))
levels_4 <- list(c("Strongly disagree", "Disagree", "Agree", "Strongly Agree"))
items <- list(c("Q1", "Q2", "Q3", "Q4", "Q5"))
par(mfrow=c(2,1))
sjp.likert(likert_2, legendLabels=levels_2, axisLabels.y=items, orderBy="neg")
sjp.likert(likert_4, legendLabels=levels_4, …Run Code Online (Sandbox Code Playgroud) 正如您在此示例中看到的,我正在尝试绘制多个雷达图。但是,圆周轴标签正在被截断。我试过将 mar 和 oma 指定为标准,但没有任何运气。
其他人能解决这个问题吗?
require(fmsb)
df <- data.frame(
a = c(0.5, 0, 0.3),
stopcuttingmeoff = c(1.2, 0, 0.5),
c = c(0.25, 0, 0.1),
d = c(0.25, 0, 0.1),
dontcutmeoff = c(4, 0, 2))
par(mfrow=n2mfrow(4))
radarchart(df, axistype = 2, centerzero = TRUE, palcex = 0.9)
radarchart(df, axistype = 2, centerzero = TRUE, palcex = 0.9)
radarchart(df, axistype = 2, centerzero = TRUE, palcex = 0.9)
radarchart(df, axistype = 2, centerzero = TRUE, palcex = 0.9)
Run Code Online (Sandbox Code Playgroud)

以下程序:
use Encode qw(:all);
my @list = Encode->encodings();
print join("\n", @list);
Run Code Online (Sandbox Code Playgroud)
如果我将脚本作为 .pl 或作为由pp.bat(使用 ActiveState Perl创建)的可执行文件运行,会给出不同的结果如果我运行a.exe,由pp.bat可用编码列表创建的非常短。如何添加编码?
我有一个我编写的Perl脚本,可以使用pp(PAR)编译它.我很好奇是否可以制作一个完全可移植的单个可执行文件(在linux和windows上运行)或者我必须创建2个可执行文件(一个用于linux,一个用于windows).我对使用perlapp或perl2exe的选项不感兴趣,我在这里严格寻找PAR/pp选项.此外,我并不是在寻找PAR能够创建.par文件,并且已经为操作系统预先部署了一个存根Perl环境.
编辑:
当针对在我的linux系统上构建的二进制文件运行file命令时,它显示二进制文件具有以下类型:
% file my_app
my_app: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped.
Run Code Online (Sandbox Code Playgroud)
这似乎表明它只能在linux系统上运行.
如果要制作绘图,并使用text()创建x轴标签,则可以指定字符串旋转或srt参数以及旋转轴标签的数字.例如,srt=45将文本旋转到45度.
说我有31列.如果我希望第一个是水平的,然后让它们逐渐变得更倾斜,最后一个是垂直的,可以想象:
slant=seq(0, -90, -3)
plot(some stuff)
text(x=mid, y=y.min-20, labels=chrs, xpd=TRUE, srt=slant, adj = 1, cex=1)
Run Code Online (Sandbox Code Playgroud)
其中mid,chrs和slant的长度是相同的.
有没有办法实现这个?
**编辑:**很抱歉,但情况可能比我所展示的要复杂一些。但是,您的两个脚本都可以工作,尽管由于点重叠,第一个脚本对于大型数据集可能不太清楚!非常感谢萨莎!
我想首先显示几个变量对,然后叠加同一数据集的选定数据。通常,可以使用par(new=T)如下方式实现叠加:
h<-rnorm(nc) # this variable was used for conditioning
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
pairs(m)
par(new=T)
pairs(m[h>0.7,],col="red")
Run Code Online (Sandbox Code Playgroud)
然而,该设置似乎par()不适用于这种用途。
那么,格子库可能会有所帮助,例如。splom(),但我不知道它是否真的有效,以及如何有效。有人可以提供一些建议吗?
我正在编写我的第一个 R 包,目前正在研究一个使用某些特定图形参数绘制绘图的函数。我希望用户定义的图形参数在绘制完成后恢复,但总是收到相同的警告消息:
opar <- par()
par(oma = c(5, 4, 0, 0) + 0.1, mar = c(0, 0, 1, 1) + 0.1)
par(opar)
Run Code Online (Sandbox Code Playgroud)
警告消息:
1:在 par(opar) 中:无法设置图形参数“cin”
2:在 par(opar) 中:无法设置图形参数“cra”
3:在 par(opar) 中:无法设置图形参数“csi”设置
4:在 par(opar) 中:不能设置图形参数“cxy”
5:在 par(opar) 中:不能设置图形参数“din”
6:在 par(opar) 中:不能设置图形参数“page”
有没有更好的方法来做到这一点?我知道该suppressWarnings()函数,但 1. 我不希望消息被隐藏2. 如果该函数被调用两次,则会出现一条警告消息:
> There were 12 warnings (use warnings() to see them)
Run Code Online (Sandbox Code Playgroud) par ×7
r ×5
plot ×3
perl ×2
activeperl ×1
executable ×1
graphics ×1
lattice ×1
radar-chart ×1
rotation ×1
string ×1
warnings ×1
windows ×1