楼主: llb_321
3855 16

[实际应用] 【独家发布】请教R实现向量场流线图的方法 [推广有奖]

11
llb_321 在职认证  发表于 2021-6-25 12:50:25
*****xyz 发表于 2021-6-25 10:31
楼主说 这两个图用的是同样的数据 可是采用不同的包 展示出来的效果却有很大的区别 能否贴出来这个图的代 ...
说错了,本意是用同样的数据可以生成两种图。楼顶的两张图其实是不同来源的数据。


12
tmdxyz 发表于 2021-6-25 15:29:15
llb_321 发表于 2021-6-25 12:50
说错了,本意是用同样的数据可以生成两种图。楼顶的两张图其实是不同来源的数据。
上面这张图的 ...
哦 原来是这样 非常感谢你 放出代码 供我们学习 再次感谢
这个图的底纹配色很好 看起来像是油画。

13
nkunku 发表于 2021-6-25 15:41:46
llb_321 发表于 2021-6-24 19:49
第二张图的数据,用metR包的geom_streamline()重新绘制该地区的风场流线图,以风速数据生成contour作为背景 ...
既然楼主这么慷慨和乐于助人,那我也来求问一下:您这个图与首页的第二图,看起来应该是差不多同样的数据。那能否也将首页第二图的代码示出,供我们这些R素人学习一下?谢谢了先。

14
llb_321 在职认证  发表于 2021-6-25 20:16:39
nkunku 发表于 2021-6-25 15:41
既然楼主这么慷慨和乐于助人,那我也来求问一下:您这个图与首页的第二图,看起来应该是差不多同样的数据 ...
那个也没什么,只不过用了ggquiver包,把上面代码中的geom_streamline改成geom_quiver再调整一下参数就可以实现向量场了。

15
nkunku 发表于 2021-6-26 15:39:36
install.packages("ggquiver")
library(ggquiver)

之后:

g<-ggplot(data) +
  aes(x = lon, y = lat) +
  geom_contour_fill(aes(z = speed)) +
  geom_quiver(aes(dx = v, dy = u),
                  L = 6,
                  arrow.length = 0.8,
                  arrow.angle = 13,
                  size = 0.6,
                  color = "red") +
  scale_fill_gradient2(low = "green",
                       mid = "blue",
                       high = "black",
                       midpoint = 5) +
  geom_polygon(data = md,
               aes(lon, lat),
               rule = "winding",
               color = "white",
               alpha = 0,
               size = 0.5) +
  coord_cartesian(xlim = c(-10, 5), ylim = c(35, 45)) +
  theme_bw() +
  theme(aspect.ratio = 1,
        panel.grid = element_blank(),
        legend.position = "none")

出现:
Warning messages:
1: Ignoring unknown parameters: L, arrow.length, arrow.angle
2: Ignoring unknown aesthetics: dx, dy

唉,没学会。惭愧


16
llb_321 在职认证  发表于 2021-6-26 20:45:11
nkunku 发表于 2021-6-26 15:39
install.packages("ggquiver")
library(ggquiver)
geom_quiver(aes(u = v, v = u),
vecsize = 2.5,
size = 1,
color = "red",
center = T)

17
nkunku 发表于 2021-6-27 09:21:46
llb_321 发表于 2021-6-26 20:45
geom_quiver(aes(u = v, v = u),
vecsize = 2.5,
size = 1,
谢谢 这回OK了 回去仔细阅读一下 衷心感谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-18 23:13