Цвет и ширина линии в радарной диаграмме с R

Я использую пакет RadarChart в R для создания радиолокационных графиков, и я хотел бы изменить цвет и линию линий данных. Но я не знаю, как это сделать. Возможно, есть аргумент, вызывающий "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)

По умолчанию он использует красный цвет, и я хочу использовать другой цвет (для других графиков радара), например:

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

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


person Biopy    schedule 16.02.2017    source источник


Ответы (2)


Для чего это стоит .. Я считаю, что функция 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, но не смог заставить его работать.

person LuckySeedling    schedule 16.02.2017

Вы действительно правы в том, что используется аргумент 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)

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

person GGamba    schedule 16.02.2017