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))
)
)
我 运行 遇到了无法为正在处理的图表的不同部分着色的问题。我想根据 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))
)
)