Можно ли нарисовать радиолокационную карту в R, где каждый круг имеет свой цвет?
Используя пакет fsmb, я создал простую радиолокационную карту. Вот воспроизводимый пример:
#install.packages("fmsb")
library(fmsb)
data <- data.frame(rbind(rep(8,14),
rep(0,14),
c(3,4,4,4,3,4,4,4,4,3,3,3,3,3)))
colnames(data) <- c("biologia", "chemia", "fizyka", "geografia", "historia", "informatyka", "język angielski", "język polski", "matematyka", "muzyka / historia muzyki", "plastyka / sztuka / historia sztuki", "sprawność fizyczna", "technika","wiedza o społeczeństwie" )
radarchart(data,
axistype=1 ,
pcol=rgb(0.2,0.5,0.5,0.5),
pfcol=rgb(0.2,0.5,0.5,0.5),
plwd=4,
cglcol="grey",
cglty=1,
axislabcol="grey",
caxislabels=seq(0,8,2), cglwd=0.8,
vlcex=0.8)
Это производит регулярную диаграмму радара с заполненным многоугольником.
Тем не менее, я бы предпочел, чтобы внутренняя область была более красочной, то есть я хотел бы закрасить каждый внутренний круг другим цветом, оставив внешнюю область многоугольника пустой, чтобы различия между категориями были лучше видны аудитории **.
Буду очень признателен, если у кого есть идеи как этого добиться:)
1 ответ
Вы можете добавить еще несколько "данных" для создания дополнительных многоугольников, выровненных по сетке. Я сделал pcol=NA для дополнительных данных, чтобы мы просто получили многоугольник без точек. Я сделал несколько правдоподобных вариантов цвета, но учтите, что все полигоны перекрываются, поэтому цвета добавляются.
## Your data with additional polygons aligned to grid
data <- data.frame(rbind(rep(8,14),
rep(0,14),
rep(4,14), rep(6,14), rep(8,14),
c(3,4,4,4,3,4,4,4,4,3,3,3,3,3)))
## Your color - to avoid repetition
COL1 = rgb(0.2,0.5,0.5,0.5)
## Plot
radarchart(data,
axistype=1 ,
pcol=c(NA, NA, NA, COL1),
pfcol=c("#FF000022", "#FF990022","#FFFF0022", COL1),
plwd=4,
cglcol="grey",
cglty=1,
axislabcol="grey",
caxislabels=seq(0,8,2), cglwd=0.8,
vlcex=0.8)
Обновление: основано на ответе на ответ. Если вы хотите, чтобы внутренняя часть отображаемой области была красочной, а внешняя - белой, вы можете добавить внутренние круги вместо внешних.
data <- data.frame(rbind(rep(8,14),
rep(0,14),
c(3,4,4,4,3,4,4,4,4,3,3,3,3,3),
rep(2,14), rep(0,14)))
## Plot
radarchart(data,
axistype=1 ,
pcol=c("#FF990088", NA,NA),
pfcol=c("#FF990044","#FFFF0044","#FF000066"),
plwd=4,
cglcol="grey",
cglty=1,
axislabcol="grey",
caxislabels=seq(0,8,2), cglwd=0.8,
vlcex=0.8)