小编Lil*_*ure的帖子

如何在ggplot2中用lat lon和箭头绘制风向

我有一个数据帧与Lat Lon mean_windwind_dir 在每个网格单元.我试图用背景和风向上的平均风作为每个网格单元格上的箭头制作空间图.

我试过跟踪样本数据框架 wind.dt

win.plt<- ggplot(wind.dt,aes(x=Lon,y=Lat))+
           #Mean wind plot : OK
        geom_tile(aes(fill=mean_wind),alpha=1)+
        geom_tile(aes(color=mean_wind), fill=NA) +
        scale_fill_gradientn(colours=(brewer.pal(9,rev("RdYlGn"))))+ 
        scale_color_gradientn(colours=(brewer.pal(9,rev("RdYlGn"))),guide=F)
          #Wind Direction : doesnot work
        geom_segment(arrow = arrow(),aes(yend = Lon + wind_dir, xend = Lat + wind_dir))

win.plt

wind.dt<-structure(list(Lon = c(170.25, 171, 171.75, 172.5, 173.25, 174, 
174.75, 175.5, 176.25, 177, 177.75, 178.5, 179.25, 180, 180.75, 
181.5, 182.25, 183, 183.75, 184.5, 185.25, 186, 186.75, 187.5, 
188.25, 189, 189.75, 190.5, 191.25, 192, 192.75, 193.5, 194.25, 
170.25, 171, 171.75, 172.5, 173.25, …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

16
推荐指数
1
解决办法
1308
查看次数

如何使用斜率和截距限制ggplot2中abline的长度?

abline我如何使用斜率和截距将的长度限制在 1985 年到 1990 年之间。我知道geom_segment,但它不需要斜率和截距。这是我的数据和脚本

> dput(df)
structure(list(year = c(1979, 1980, 1981, 1982, 1983, 1984, 1985, 
1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 
1997, 1998), value = c(7.33, 10.32, 11.65, 6.19, 8.3, 9.24, 8.13, 
9.94, 10.85, 11.37, 7.17, 9.18, 11.24, 11.38, 8.32, 9.29, 7.48, 
8.63, 10.17, 8.94)), .Names = c("year", "value"), row.names = c(NA, 
-20L), class = c("tbl_df", "tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)

脚本

plt <- ggplot(df, aes(year, value)) +
    geom_line() +
    geom_abline(aes(slope = 0.00225, intercept …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

3
推荐指数
1
解决办法
3136
查看次数

如何根据另一个栅格网格单元值对栅格进行子集化(分类)?

如何根据给定示例中的以下条件重新分类(子集)栅格r1(与 具有相同的维度和范围r2r2

状况:

  • 如果的网格单元的值r2>0.5,保留对应值和相邻的2个网格细胞旁0.5的值(即,具有值缓冲网格单元>0.5r2,以在所有方向上环绕两个栅格)中r1并改变其它值为0。

IE。我如何更改网格单元格的值,r1以便它给出对应于>0.5值网格单元格的值及其缓冲(环绕)中每个方向的两个网格单元格r2

如果我只需要获取网格单元,>0.5我可以通过以下代码轻松获得,但是,我还想提取该>0.5值以及 2 个周围网格单元的值。

示例计算代码是:

set.seed(150)
r1 <- raster(ncol=10, nrow=5) #Create rasters
values(r1) = round(runif(ncell(r1),5,25))
r2 <- raster(ncol=10, nrow=5)
values(r2) = round(runif(ncell(r2),0.1,1))

selfun <- function(x,y) {
  ifelse( x >0.5, y,0)
}  # It works only for >0.5 gridcells, i need this gridcells and its adjacent
  #two gridcells in each direction. …
Run Code Online (Sandbox Code Playgroud)

r raster rasterizing r-raster

3
推荐指数
1
解决办法
1924
查看次数

标签 统计

r ×3

ggplot2 ×2

plot ×1

r-raster ×1

raster ×1

rasterizing ×1