rCharts HighCharts 如何为区域着色

rCharts HighCharts how to color zones

我 运行 遇到了无法为正在处理的图表的不同部分着色的问题。我想根据 y 轴上的阈值更改颜色。从 high charts javascript 看文档似乎很容易,但是当我尝试将其翻译成 R 以使用 rCharts 时,它失败了。这是我所拥有的,带有一个名为 final 的示例数据框。

library(rCharts)
final <- data.frame(x = c(1,2,3,4,5), y = c(15,17,20,21,22), radius = rep(3,5))
temp <- apply(final[,c("x","y","radius"])], 1, as.list)
a <- Highcharts$new()
a$series(animation = FALSE, name = "placeholder", data = temp, type = "scatter", 
lineWidth = 1, zoneAxis = "y", zones = list(list(value = 20, 
                                                 color = "rgba(223, 83, 83, 0.5)"),
                                            list(color = "rgba(50, 205, 50, 0.5)")))

这不会改变绘图的默认颜色,所以我很困惑,非常感谢任何帮助或可能的其他解决方案。谢谢!

这是根据区域文档建模的:http://www.highcharts.com/docs/chart-concepts/series#4aaN

以下是我不明白的地方: 这段代码在c()里面有一个]没有意义;

temp <- apply(final[,c("x","y","radius"])], 1, as.list)

我猜你的意图是 select 所有列,这可以通过一个简单的方式实现:

temp <- apply(final[ , ], 1, as.list)

但是这段代码对我来说似乎也很奇怪,因为可以通过以下方式获得相同的结果:

temp <- apply(final, 1, as.list)
temp
[[1]]
[[1]]$x
[1] 1

[[1]]$y
[1] 15

[[1]]$radius
[1] 3


[[2]]
[[2]]$x
[1] 2

[[2]]$y
[1] 17

[[2]]$radius
[1] 3


[[3]]
[[3]]$x
[1] 3

[[3]]$y
[1] 20

[[3]]$radius
[1] 3


[[4]]
[[4]]$x
[1] 4

[[4]]$y
[1] 21

[[4]]$radius
[1] 3


[[5]]
[[5]]$x
[1] 5

[[5]]$y
[1] 22

[[5]]$radius
[1] 3

如果你当然想要的话。

编辑:更改颜色(另一种方法)

我改变了颜色,尽管我不得不承认我实现了这个解决方案,因为我不知道 rgba 函数属于哪个包。 我将 rgba 更改为 rgb,我取消了它的引号(你确定它应该被引号吗?)并且我将 max = 255 设置为 rgb。这是代码。

a$series( animation = FALSE, name = "placeholder",
            data = temp, type = "scatter",
            lineWidth = 1, zoneAxis = "y",
            zones = list(list(value = 20,
                        color = rgb(223, 83, 83, 0.5, max = 255)),
                      list(color = rgb(50, 205, 50, 0.5, max = 255))
                      )
            )