我正在尝试根据Y轴值更改折线图中某条线的颜色。
**我的具体应用:**我正在可视化风速和风向。理想情况下,我会使用玫瑰图来完成此操作,但我会将其与线图中显示的其他数据进行比较。我目前的风向以度为单位,但很难快速解释。我希望根据基本方向(N、NE、E、SE、S、SW、W、NW)将该线分为8个不同颜色的类别,以便更容易理解风向。不要在意图中可能出现的压倒性颜色数量,我只想给予一下,因为我目前拥有的数据很难解释。
我对R非常生疏,没有配备适当的术语来搜索,也不知道从哪里开始。
这是可能的吗?是否需要将序列分解成许多不同的线段?
R甚至Excel中的解决方案将受到赞赏。
编辑:下面是数据外观的示例
# random wind speed and direction over 24 hours, hourly
set.seed(123)
date_time <- seq.POSIXt(ISOdate(2023,1,20, hour = 00), ISOdate(2023, 1, 20, hour = 23), "hour")
wind_speed <- runif(24, 0, 20)
wind_direction <- runif(24, 0, 359)
df_wind <- data.frame(date_time, wind_speed, wind_direction)
1条答案
按热度按时间mm5n2pyu1#
离散时间x轴的概念使这一点有点挑战性,因为,例如,在每个单位时间内,风向可能在所有方向上变化,这会使混合色线--甚至是分段色线--看起来相当混乱。
一个替代选项将是在背景中放置表示方向的条带,例如:
下面的代码使用
rect
和adjustcolor
创建透明条带,我还创建了一个名为directs
的向量来简化方向类别。另一种选择是绘制点的颜色,而不是线的颜色,如下所示:
为此,我在数据集
df_wind$direction
中创建了一个新变量:或者为什么不两者兼顾?
最后,您可以根据最近的位置对行进行着色(并添加彩色点-要删除它们,只需删除
points
循环),如您的评论中所述,但您再次可以看到混乱。