雷达图中的颜色和线宽与R

时间:2017-02-16 10:26:15

标签: r colors radar-chart

我使用R中的包雷达图来制作雷达图,我想改变数据线的颜色和线条。但我不知道该怎么做。也许有一个论点叫做#34; 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种不同的颜色。

enter image description here

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

chartJSRadar(scores=data1, labs=labels)

它默认使用红色,我想使用另一种颜色(对于其他雷达图),如下所示:

https://i.stack.imgur.com/h4B1A.png

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

2 个答案:

答案 0 :(得分:0)

你确实使用的论据是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)

请注意,如果有多个数据系列而不是颜色,则会重复使用它们,从第一个开始重新启动。

答案 1 :(得分:0)

对于它的价值......我发现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)

但同样的规则适用,如果有更多的数据系列而不是颜色,它们将被重复使用。

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