首页 > 解决方案 > 有没有办法突出 R 中的 dygraph 的传说

问题描述

当颜色彼此接近时,可以在任何多变量 dygraph 图中看到这个问题,特别是如果你像我一样不太擅长识别颜色的细微差异(我的妻子可以做得比我好得多)。

最好的方法是查看 dygraph 的图片并将鼠标指向任何一条线。在此处输入图像描述 如您所见,变量的颜色z非常short接近绿色。

有没有办法在图例的尖系列周围突出显示(比如说一个矩形)。我知道我们可以用它dyHighlight()来突出显示数据系列。

如果有人想在这里复制 dygraph 是数据和代码。

这是一个 dput 格式的 data.frame(只有 10 行)。

structure(list(ts = structure(c(1636488540L, 1636488600L, 1636488660L, 
1636488720L, 1636488780L, 1636488840L, 1636488900L, 1636488960L, 
1636489020L, 1636489080L, 1636489140L), class = c("POSIXct", 
"POSIXt"), tzone = ""), x = c(-1.47069335096148, -3.36409786063375, 
-3.47740281050692, -0.255068206704506, 5.22759893683639, -10.3043374092728, 
-5.2344716901776, -9.78183898579815, -3.22880795465383, 10.605420513646, 
-3.89232017758796), y = c(-43.384448866304, -46.7485467269378, 
-50.2259495374447, -50.4810177441492, -45.2534188073128, -55.5577562165856, 
-60.7922279067632, -70.5740668925614, -73.8028748472152, -63.1974543335692, 
-67.0897745111571), z = c(-137.821501091824, -132.046751108584, 
-140.358945130686, -147.455514008532, -145.960386088907, -151.292192768048, 
-161.603402930662, -186.92405101591, -205.16916964654, -207.574396073346, 
-204.090103691941), fuel = c(852.178498908176, 857.953248891416, 
849.641054869314, 842.544485991468, 844.039613911093, 838.707807231952, 
828.396597069338, 803.07594898409, 784.83083035346, 782.425603926654, 
785.909896308058), delta = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), 
    short = c(-8.8926709311977, 6.5109558655754, 5.24159847904127, 
    -3.34476928169295, -8.13888499708287, -19.2454416594633, 
    -21.2444577999751, -39.4685370073786, -59.2087835576331, 
    -56.2822033052981, -42.48670076128), long = c(-178.435062392844, 
    -179.31344224667, -187.306132052743, -185.62097109537, -176.874913772529, 
    -172.952666784266, -167.386770377762, -184.70364909417, -196.140010827552, 
    -194.056786969029, -182.415749904105)), row.names = c(NA, 
-11L), class = "data.frame")

运行代码

library(data.table)
library(magrittr)
library(dygraphs)

# assign the above data to an R object say dputvar - note it is just 10 rows.
# you will not see the same rich chart as in the picture but the problem can be replicated in these 10 lines also

as.data.table(dputvar) %>% 
dygraph() %>% 
dySeries(name = "fuel",strokeWidth = 3) %>% 
dyHighlight()

在此处输入图像描述

标签: rdygraphs

解决方案


如果您选择自己的一组颜色以使它们不同且彼此不相似,这不是更好吗?像这样的东西:

mydygraph <- dygraph(as.data.table(dputvar))
for (i in c('red', 'blue', 'green', 'yellow', 'brown', 'black', 'purple')) {
 mydygraph <- dySeries(a, strokeWidth = 3, color = i)
}
mydygraph

这样您就可以选择不同的颜色。您可以添加以下格式的颜色:"#AABBCC""rgb(255,100,200)""yellow"。您可以阅读更多内容?dySeries

在此处输入图像描述


推荐阅读