dy在x轴上显示y轴的附加限制

时间:2017-10-18 23:45:49

标签: r shiny dygraphs

在这个简单的dygraph上,使用了2种不同的颜色来突出显示/遮蔽对应于y轴正面或负面的值。阴影区域通常会重叠,很难在较大的数据系列中看到突出显示的事件。我想限制阴影仅覆盖y轴上图形的一半,例如绿色阴影从0开始,紫色从0开始。

library(xts)
library(dygraphs)
data1 <- xts(matrix( c(rnorm(50, mean = 3), rnorm(50, mean = -3) ) , ncol=2, nrow=50), order.by=seq.POSIXt(as.POSIXct("2017-10-01 00:00:00", tz="UTC"), by=3600, length.out = 50))

dygraph(data1) %>%
   dyShading(from = "2017-10-01 12:00:00",to = "2017-10-02 08:00:00", color = "rgba(10, 89, 4, 0.2)", axis = "x") %>%
   dyShading(from = "2017-10-02 00:00:00",to = "2017-10-02 16:00:00", color = "rgba(200, 200, 230, 0.4)", axis = "x") 

enter image description here

我试图从R dygraphs包中更改.js文件以手动控制这些限制,但这可能不是最好的主意。是否可以某种方式控制y轴阴影限制?一个很长的解决方法就可以了。该dygraph在Shiny应用程序中运行,如果这会改变任何内容。

更新:下面是ggplot所需效果的演示:

library(ggplot2)
library(data.table)  
data2 <- data.frame(date=index(data1), coredata(data1))
data2 <- melt(data2, id.vars = 'date')

ggplot(data2, aes(x=date, y=value, group=variable)) +
   geom_line(aes()) + 
   geom_rect(data=data2, aes(xmin=as.POSIXct("2017-10-01 12:00:00"), xmax=as.POSIXct("2017-10-02 08:00:00"), ymin=0, ymax=7), alpha=0.005, inherit.aes = FALSE) +
   geom_rect(data=data2, aes(xmin=as.POSIXct("2017-10-02 00:00:00"), xmax=as.POSIXct("2017-10-02 16:00:00"), ymin=0, ymax=-7), alpha=0.005, inherit.aes = FALSE)

enter image description here

0 个答案:

没有答案