2017-02-16 6 views
0

Я использую пакет radarchart в R, чтобы сделать радарные графики, и я хотел бы изменить цвет и линию линий данных. Но я не знаю, как это сделать. Возможно, есть аргумент, вызывающий «colMatrix», но я не знаю, как его использовать.Цвет и ширина линии в Radarchart с R

Вот короткий пример кода:

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

Надеюсь, что кто-то знает. То же самое для ширины линии.

ответ

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) 

Те же правила применяются, если есть больше серий данных, чем цвета, они будут повторно использоваться.

Я не уверен в ширине линии. После проверки диаграмм docs (http://www.chartjs.org/docs/#radar-chart-chart-options), я думал, что это будет параметр borderWidth, но я не мог заставить его работать.

+0

Я также думаю о borderWidth, но он не работает. – Biopy

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) 

Обратите внимание, что если есть больше рядов данных, чем цвет они будут использоваться повторно, перезапуск от первый.

 Смежные вопросы

  • Нет связанных вопросов^_^