我使用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种不同的颜色。
但是当只绘制一个这样的时候:
chartJSRadar(scores=data1, labs=labels)
它默认使用红色,我想使用另一种颜色(对于其他雷达图),如下所示:
希望有人知道。线宽相同。
答案 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选项,但我无法使其工作。