我正在尝试使用来自Andy Clifton的梦幻风玫瑰R代码,网址为/sf/answers/1208674701/,用于绘制从气象模型中提取的数据.从模型中我得到你和风速分量m/s.然后我计算风速和风向并尝试风玫瑰代码.但我不确定它是否按预期工作,或者我不明白该功能正在做什么.
我尝试使用Andy的函数和下面的代码来绘制4朵风玫瑰:
flist<-c("03050","12010","46070","46050")
for (i in 1:4 ) {
windfile=paste("viento-",flist[i],".csv",sep="")
viento=read.table(windfile,sep=";",header=F)
colnames(viento) <- c("u","v")
fecha=read.table("ffhh.txt",header=F,sep=";")
colnames(fecha) <- c("date","hr")
wind<-cbind.data.frame(fecha,viento)
wind$speed=sqrt(wind$u*wind$u+wind$v*wind$v)
wind$dir=windDir(wind$u,wind$v)
graf=paste("RAMS-wind-rose-",flist[i],".png",sep="")
png(graf,res=240,width=3000, height=2400)
plot.windrose(data = wind,spd = "speed",dir = "dir")
dev.off()
}
Run Code Online (Sandbox Code Playgroud)
图形输出是

因此,最大风速在18-20米/秒的范围内.这样对吗?但如果我寻找最大风速,我会得到不同的价值
max(wind$speed)
[1] 10.24317
Run Code Online (Sandbox Code Playgroud)
也许我误解了wind.rose函数是如何运行的,或者在调用函数时可能存在问题.任何建议将不胜感激,我现在卡在这里.
风数据:
dput(wind)
structure(list(date = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用下面的代码在 R 中绘制月度玫瑰图,但遇到错误:“错误:分面变量必须至少有一个值”
这是我使用的 数据链接到数据
此代码来自上一篇文章:使用 ggplot 的玫瑰图
require(ggplot2)
require(RColorBrewer)
require(scales)
plot.windrose <- function(data,
spd,
dir,
spdres = 2,
dirres = 22.5,
spdmin = 2,
spdmax = 20,
spdseq = NULL,
palette = "YlGnBu",
countmax = NA,
debug = 0){
# Look to see what data was passed in to the function
if (is.numeric(spd) & is.numeric(dir)){
# assume that we've been given vectors of the speed and direction vectors
data <- data.frame(spd = spd,
dir = dir)
spd = …Run Code Online (Sandbox Code Playgroud)