R 雷达图中的颜色和线宽

Color and linewidth in radarchart with R

我正在使用 R 中的 radarchart 包来制作雷达图,我想更改数据线的颜色和线条。但我不知道该怎么做。可能有参数调用"colMatrix",但我不知道怎么用

这里是一个简短的代码示例:

labels = c("1", "2", "3", "4", "5")
data1 = data.frame("A" = c(0.6, 0.5, 0.2, 0.9, 0.2))
data2 = data.frame("B" = c(0.5, 0.1, 0.9, 0.8, 0.3))
data3 = data.frame("C" = c(0.6, 0.6, 0.5, 0.7, 0.5))
chartJSRadar(scores=c(data1,data2, data3), labs=labels, polyAlpha=0, showLegend=F, maxScale=1)

当运行最后一行时,绘图自动为每个数据使用 3 种不同的颜色。

但是当像这样只绘制一个时:

chartJSRadar(scores=data1, labs=labels)

它默认使用红色,我想像这样使用另一种颜色(对于其他雷达图):

希望有人知道。线宽相同。

你确实是正确的,要使用的参数是 colMatrix
colMatrix 接受一个包含 3 行的矩阵作为输入,第一行是红色,第二行是绿色,最后是蓝色,还有 n 列,其中 n 是您需要的颜色数

cols <- matrix(c(0,0,255), nrow = 3)

产生单一颜色:全蓝色。

cols <- matrix(c(c(0,0,255), c(255,0,0)), nrow = 3)

产生两种颜色:全蓝色和全红色。


获得所需的颜色后,只需将矩阵传递给 colMatrix 参数即可:

chartJSRadar(scores=data1, labs=labels, colMatrix = cols)

请注意,如果数据系列多于颜色,它们将是 re-used,从第一个重新开始。

物有所值.. 我发现 col2rgb 函数对于转换为 RGB 颜色非常方便。

library(radarchart)    

c <- grDevices::col2rgb(c("orange","green", "black"))

labels = c("1", "2", "3", "4", "5")
data1 = data.frame("A" = c(0.6, 0.5, 0.2, 0.9, 0.2))
data2 = data.frame("B" = c(0.5, 0.1, 0.9, 0.8, 0.3))
data3 = data.frame("C" = c(0.6, 0.6, 0.5, 0.7, 0.5))
chartJSRadar(scores=c(data1,data2, data3), labs=labels, polyAlpha=0, showLegend=F, maxScale=1, colMatrix = c)

同样的规则适用,如果数据系列多于颜色,它们将获得 re-used。

虽然我不确定线宽。在检查了 chartjs 文档 (http://www.chartjs.org/docs/#radar-chart-chart-options) 之后,我认为这将是 borderWidth 选项,但我无法让它工作。