具有NA的线之间的基色R
在以下两个约束条件下,是否有可能使用底R对两条具有NA的线之间的基色R,r,ggplot2,shiny,R,Ggplot2,Shiny,在以下两个约束条件下,是否有可能使用底R对两条线之间的区域进行着色: 我不能使用ggplot2,因为我的应用程序的其他部分无法工作(存在clickId限制;更具体地说,使用ggplot2的clickId不会给出数据的实际x和y值) 我也不能使用polygon,因为NAs存在于我的数据中,这使得polygon创建的“阴影”过早关闭 以下是SSCCE(不包括组件): 您可以按na值分割数据,然后对分割的数据使用polygon。我首先创建一个data.frame。然后,您可以在NA上拆分数据.fr
线之间的区域进行着色:
- 我不能使用
ggplot2
,因为我的应用程序的其他部分无法工作(存在clickId
限制;更具体地说,使用ggplot2
的clickId
不会给出数据的实际x和y值)
- 我也不能使用
polygon
,因为NA
s存在于我的数据中,这使得polygon
创建的“阴影”过早关闭
以下是SSCCE(不包括组件):
您可以按na值分割数据,然后对分割的数据使用polygon
。我首先创建一个data.frame
。然后,您可以在NA
上拆分数据.frame
,并使用NA.ommit
省去NA
值。最后使用lappy
和polygon
绘制数据
df <- data.frame(time = vals_time,
l1 = vals_line1,
l2 = vals_line2)
plot(x = df$time, y = df$l1, type = "l", ylim = c(0, 11))
lines(x = df$time, y = df$l2)
lst <- lapply(split(df, cumsum(is.na(df$l1))), na.omit)
lapply(lst, function(d)
polygon(x = c(d$time, rev(d$time)), y = c(d$l1, rev(d$l2)), col = rgb(1,0,0,0.5)))
df我目前正在考虑一个非常棘手的解决方法:找到没有NAs的连续x集,并对每个完整的x集进行多边形“着色”。但在我深入讨论这个问题之前,有没有更简单的方法?请提供一个最小的、自包含的示例。检查这些链接,了解一般的想法,以及如何在R:、和中执行此操作。
polygon(x = c(vals_time, vals_time[10:1]),
y = c(vals_line1, vals_line2[10:1]),
col = rgb(1, 0, 0, 0.5))
df <- data.frame(time = vals_time,
l1 = vals_line1,
l2 = vals_line2)
plot(x = df$time, y = df$l1, type = "l", ylim = c(0, 11))
lines(x = df$time, y = df$l2)
lst <- lapply(split(df, cumsum(is.na(df$l1))), na.omit)
lapply(lst, function(d)
polygon(x = c(d$time, rev(d$time)), y = c(d$l1, rev(d$l2)), col = rgb(1,0,0,0.5)))