rCharts HighCharts如何着色区域

时间:2015-06-10 18:19:40

标签: r highcharts rcharts

我遇到了一个问题,我无法为我正在处理的图表的不同部分添加颜色。我想根据y轴上的阈值更改颜色。从高级图表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

1 个答案:

答案 0 :(得分:1)

以下是我不明白的观点: 此代码在]内部c()没有任何意义;

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

我的意图是,选择所有列,可以通过简单的方法实现:

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))
                      )
            )