- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由 {climatol}
包创建的 windrose。行代表组(以 m/s 为单位的风速),列是地理标志(N-North,S-South,...)。
N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW
0-3 59 48 75 90 71 15 10 11 14 20 22 22 24 15 19 33
3-6 3 6 29 42 11 3 4 3 9 50 67 28 14 13 15 5
6-9 1 3 16 17 2 0 0 0 2 16 33 17 6 5 9 2
> 9 0 1 2 3 0 0 0 0 0 1 4 3 1 1 2 0
我可以成功绘制所有行的数据:
相反,我想创建 4 个图,每行 1 个。我试过了
par(mfrow=c(2,2))
但我收到错误:
Error in par(old.par) :
invalid value specified for graphical parameter "pin"
子集和函数似乎没问题,因为如果我在函数中添加 windows()
就可以绘制单独的图。但是如何并排绘制它们?
因为我没有使用 ggplot
,所以我不确定在这种情况下如何使用 grid.arrange
...
我的虚拟数据
require(climatol)
data(windfr)
# Create general plot
rosavent(windfr, 4, 4, ang=-3*pi/16, main="Annual windrose")
# identify unique rows
ii<-rownames(windfr)
# define the plotting of 4 plots - NOT WORKING!!
par(mfrow=c(2,2))
# function to subset each row and create plot
lapply(ii, function(i) {
#windows()
rosavent(subset(windfr, rownames(windfr) == i),
5, # number of rings
10, # between rings
ang =-3*pi/16,
main = i ) })
感谢您的建议!
最佳答案
在 rosavent()
的代码中,他们在退出时重置了 par。以下是摘录。据我所知,对此几乎无能为力。
old.par <- par(no.readonly = TRUE)
on.exit(par(old.par))
.. 除了删除那部分并制作我们自己的 rosavent2()
函数😈
rosavent2 <- function (frec, fnum = 4, fint = 5, flab = 2, ang = 3 * pi/16,
col = rainbow(10, 0.5, 0.92, start = 0.33, end = 0.2), margen = c(0,
0, 4, 0), key = TRUE, uni = "m/s", ...)
{
## old.par <- par(no.readonly = TRUE)
## on.exit(par(old.par))
if (is.matrix(frec))
frec <- as.data.frame(frec)
if (is.vector(frec)) {
ndir <- length(frec)
nr <- 1
}
else {
ndir <- length(frec[1, ])
nr <- nrow(frec)
}
fmax <- fnum * fint
tot <- sum(frec)
fr <- 100 * frec/tot
key <- (nr > 1) && key
if (key)
mlf <- 3
else mlf <- 1
par(mar = margen, new = FALSE)
fx <- cos(pi/2 - (2 * pi/ndir * 0:(ndir - 1)))
fy <- sin(pi/2 - (2 * pi/ndir * 0:(ndir - 1)))
plot(fx, fy, xlim = c(-fmax - mlf * fint, fmax + fint), ylim = c(-fmax -
fint, fmax + fint), xaxt = "n", yaxt = "n", xlab = "",
ylab = "", bty = "n", asp = 1, type = "n", ...)
if (nr == 1) {
cx <- fx * fr
cy <- fy * fr
}
else {
f <- apply(fr, 2, sum)
cx <- fx * f
cy <- fy * f
for (i in nr:2) {
f <- f - fr[i, ]
cx <- c(cx, NA, fx * f)
cy <- c(cy, NA, fy * f)
}
}
polygon(cx, cy, col = col[nr:1])
symbols(c(0 * 1:fnum), c(0 * 1:fnum), circles = c(fint *
1:fnum), inches = FALSE, add = TRUE)
segments(0 * 1:ndir, 0 * 1:ndir, fmax * fx, fmax * fy)
fmaxi <- fmax + fint/4
text(0, fmaxi, "N")
text(0, -fmaxi, "S")
text(fmaxi, 0, "E")
text(-fmaxi, 0, "W")
if (flab == 2)
for (i in 1:fnum) text(i * fint * cos(ang), i * fint *
sin(ang), paste(i * fint, "%"))
else if (flab == 1)
text(fmax * cos(ang), fmax * sin(ang), paste(fmax, "%"))
if (key) {
legend(-fmaxi - 2.3 * fint, fmaxi + 2, fill = col, legend = attr(frec,
"row.names"))
text(-fmaxi - 1.4 * fint, fmaxi + 0.9 * fint, uni)
}
invisible()
}
让我们试一试。
op <- par(mfrow = c(2, 2))
for (i in rownames(windfr)) {
rosavent2(
frec = windfr[which(rownames(windfr) == i), ],
fnum = 5,
fint = 10,
ang = -3*pi/16,
main = i
)
}
par(op)
关于R lapply : plot data by row Error "invalid value specified for graphical parameter "pin",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50340692/
reqwest v0.9 将 serde v1.0 作为依赖项,因此实现 converting serde_json errors into reqwest error . 在我的代码中,我使用 se
我有这个代码: let file = FileStorage { // ... }; file.write("Test", bytes.as_ref()) .map_err(|e| Mu
我只是尝试用angular-cli创建一个新项目,然后运行服务器,但是它停止并显示一条有趣的消息:Error: No errors。 我以这种方式更新了(希望有帮助):npm uninstall -g
我从我的 javascript 发送交易 Metamask 打开传输对话框 我确定 i get an error message in metamask (inpage.js:1 MetaMask -
这个问题在这里已经有了答案: How do you define custom `Error` types in Rust? (3 个答案) How to get a reference to a
我想知道两者之间有什么大的区别 if let error = error{} vs if error != nil?或者只是人们的不同之处,比如他们如何用代码表达自己? 例如,如果我使用这段代码: u
当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息 Error: Connection disconnected with error 'Error: Serv
我有一个error-page指令,它将所有异常重定向到错误显示页面 我的web.xml: [...] java.lang.Exception /vi
我有这样的对象: address: { "phone" : 888, "value" : 12 } 在 WHERE 中我需要通过 address.value 查找对象,但是在 SQL 中有函数
每次我尝试编译我的代码时,我都会遇到大量错误。这不是我的代码的问题,因为它在另一台计算机上工作得很好。我尝试重新安装和修复,但这没有帮助。这是整个错误消息: 1>------ Build starte
在我的代码的类部分,如果我写一个错误,则在不应该的情况下,将有几行报告为错误。我将'| error'放在可以从错误中恢复的良好/安全位置,但是我认为它没有使用它。也许它试图在某个地方恢复中间表情? 有
我遇到了 csv 输入文件整体读取故障的问题,我可以通过在 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题来解决这个问题。 但是我需要报告这些造成问题的文
在 Spring 中,验证后我们在 controller 中得到一个 BindingResult 对象。 很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。 因此
我不知道出了什么问题,因为我用 Java 编程了大约一年,从来没有遇到过这个错误。在一分钟前在 Eclipse 中编译和运行工作,现在我得到这个错误: #A fatal error has been
SELECT to_char(messages. TIME, 'YYYY/MM/DD') AS FullDate, to_char(messages. TIME, 'MM/DD
我收到这些错误: AnonymousPath\Anonymized.vb : error BC30037: Character is not valid. AnonymousPath\Anonymiz
我刚刚安装了 gridengine 并在执行 qstat 时出现错误: error: commlib error: got select error (Connection refused) erro
嗨,我正在学习 PHP,我从 CRUD 系统开始,我在 Windows 上安装了 WAMP 服务器,当我运行它时,我收到以下错误消息。 SCREAM: Error suppression ignore
我刚刚开始一个新项目,我正在学习核心数据教程,可以找到:https://www.youtube.com/watch?v=zZJpsszfTHM 我似乎无法弄清楚为什么会抛出此错误。我有一个名为“Exp
当我使用 Jenkins 运行新构建时,出现以下错误: "FilePathY\XXX.cpp : fatal error C1853: 'FilePathZ\XXX.pch' precompiled
我是一名优秀的程序员,十分优秀!