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 选项,但我无法让它工作。
我正在使用 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 选项,但我无法让它工作。