如何在R中绘制羽毛图?

如何在R中绘制羽毛图?,r,ggplot2,R,Ggplot2,有可能在R中绘制羽毛图吗?进行一些谷歌搜索只发现了一个能够制作羽毛图的R包(feather.plot),但它是一个旧包,不适用于R版本3.6.1。下面是一个风速和风向的时间序列示例,我想用它来绘制一个羽毛图。x轴应为小时,每条羽毛的长度应为速度,每条羽毛的角度应为方向 set.seed(123) wind.df <- data.frame(hour = 1:10, speed = runif(n=10, min = 1, max = 10),

有可能在R中绘制羽毛图吗?进行一些谷歌搜索只发现了一个能够制作羽毛图的R包(
feather.plot
),但它是一个旧包,不适用于R版本3.6.1。下面是一个风速和风向的时间序列示例,我想用它来绘制一个羽毛图。x轴应为
小时
,每条羽毛的长度应为
速度
,每条羽毛的角度应为
方向

set.seed(123)

wind.df <- data.frame(hour = 1:10,
                      speed = runif(n=10, min = 1, max = 10),
                      direction <- runif(n=10, min = 0, max = 360))

set.seed(123)

wind.df在ggplot中用一点三角法就可以制作出这样的东西,不需要太多的努力。下面是使用示例数据的完整reprex:

set.seed(123)
风,单位:df%
突变(yend=速度*cos(方向*2*pi/360)*0.1,
xend=速度*sin(方向*2*pi/360)*0.1+小时%>%
ggplot(aes(x=h,y=0))+
geom_段(aes(xend=xend,yend=yend),尺寸=1,
箭头=网格::箭头(长度=单位(0.15英寸),type=“闭合”)+
geom_hline(yintercept=0,color=“gray50”)+
比例x连续(间隔=1:10)+
几何点()+
实验室(y=”“)+
coord_equal()+
主题_bw()+
主题(axis.text.y=element\u blank())

这是我想要的最终产品,感谢您的帮助@Allan Cameron

library(ggplot2)
library(tidyverse)
library(dplyr)

set.seed(123)

wind.df <- data.frame(hour = 1:10,
                      speed = runif(n=10, min = 1, max = 10),
                      direction <- runif(n=10, min = 0, max = 360))

wind.df %>%
  ggplot(aes(x = hour, y = 0, angle = direction, radius = speed)) +
  geom_spoke(size = 1,
               arrow = grid::arrow(length = unit(0.25, "cm"), type = "open")) +
  geom_hline(yintercept = 0, color = "gray50") +
  geom_point() +
  ylab(expression(paste("Absolute Wind Speed (m  ", s^-1,")"))) +
  ylim(-10,10) +
  scale_x_continuous(limits = c(0,12),
                     breaks = c(seq(from = 0, to = 10, by = 1))) +
  theme_bw() +
  theme(panel.grid = element_blank(),
        text = element_text(size = 12),
        axis.text.x = element_text(size = 12, color = "black"),
        axis.text.y = element_text(size = 12, color = "black"))
库(ggplot2)
图书馆(tidyverse)
图书馆(dplyr)
种子集(123)

几个月前,wind.df没有关于矢量可视化的类似问题,我相信你给出了答案?是关于2D向量场@Tjebo的吗?