gpt4 book ai didi

r - 如何使用R绘制风向和风速(速度图)

转载 作者:行者123 更新时间:2023-12-02 07:33:49 34 4
gpt4 key购买 nike

基本上,我有2个矩阵(u和v)的列表,其中包含纵向和横向的风速(以及包含坐标的 vector x和y)。我想制作一个 map ,其中的箭头指向最终的方向,其大小与风速成比例。之前有人问过这个问题:http://www.mail-archive.com/r-help@r-project.org/msg18875.html
不幸的是,答案中的链接已断开。我尝试使用颤动功能,但无法正常工作。

这是我的数据的样子:

x=seq(10,15,by=0.25)
y=seq(40,50,by=0.25)
u=matrix(runif(length(x)*length(y),-2,3),nrow=length(y),ncol=length(y))
v=matrix(runif(length(x)*length(y),-2,3),nrow=length(y),ncol=length(y))
wind=list(u,v)

对于颤振功能:
library(pracma)
quiver(x=x, y=y, u=wind[[1]], v=wind[[2]])

给出两次:
Error: invalid graphics state

我认为u和v是错误的,并且也必须是坐标,但是老实说我不理解包装说明中给出的解释(u,v:起点的x,y坐标)。

我看到在matlab或python中有更多信息可用于 Flutter ,但是我从来没有使用过,因此在R中进行此操作的任何建议将不胜感激。

最佳答案

x=seq(10,15,by=0.25)
y=seq(40,50,by=0.25)
u=matrix(runif(length(x)*length(y),-2,3),nrow=length(x),ncol=length(y))
v=matrix(runif(length(x)*length(y),-2,3),nrow=length(x),ncol=length(y))
#note that I corrected these

#melt for plotting
library(reshape2)
u <- melt(u,value.name = "u")
v <- melt(v,value.name = "v")
wind <- merge(u, v)
wind$x <- x[wind[,1]]
wind$y <- y[wind[,2]]


#plot
library(ggplot2)
library(grid)
scaler <- 1

p <- ggplot(wind, aes(x=x, y=y, xend=x+u*scaler, yend=y+v*scaler)) + geom_segment(arrow=arrow())
print(p)

关于r - 如何使用R绘制风向和风速(速度图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19050481/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com