Używam pakietu Radarchart w R, aby zrobić działki radarowe i chciałbym zmienić kolor i winiwisko linii danych. Ale nie wiem, jak to zrobić. Może jest argument dzwoniący "Colmatrix", ale nie wiem, jak go używać.

Tutaj krótka próbka kodu:

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)

Podczas uruchamiania ostatniej linii wykres automatycznie używa 3 różnych kolorów dla każdego danych.

enter image description here

Ale kiedy spisując tylko jeden taki:

chartJSRadar(scores=data1, labs=labels)

Domyślnie używa czerwonego i chcę użyć innego koloru (dla innych działek radarowych) takich jak:

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

Mam nadzieję, że ktoś wie. Tak samo na linewidth.

0
Biopy 16 luty 2017, 13:26

2 odpowiedzi

Najlepsza odpowiedź

Warto na to, co jest warte. Uważam, że funkcja Col2RGB dość przydatna do konwersji do kolorów 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)

Jednocześnie mają takie same zasady, jeśli istnieje więcej serii danych niż kolory, otrzymają ponownie używane.

Nie jestem jednak pewien o szerokości linii. Po sprawdzeniu dokumentów Chartjs (http://www.chartjs.org/docs / # Opcje wykresów radarowych), myślałem, że będzie to opcja Granitwidth, ale nie mogłem go uruchomić.

0
LuckySeedling 16 luty 2017, 11:57

Naprawdę poprawić, że argument użyć jest colMatrix.
colMatrix Akceptuj jak wejście matryca z 3 rzędami, najpierw na czerwono, drugi na zielony i ostatni dla kolumn niebieski, a n, gdzie n jest liczbą potrzebnych kolorów

cols <- matrix(c(0,0,255), nrow = 3)

Produkuje jeden kolor: pełny niebieski.

cols <- matrix(c(c(0,0,255), c(255,0,0)), nrow = 3)

Wyprodukuj dwa kolory: pełny niebieski i pełny czerwony.


Po otrzymaniu kolorów potrzebujesz, po prostu przekazujesz matrycę do argumentu colMatrix:

chartJSRadar(scores=data1, labs=labels, colMatrix = cols)

Należy pamiętać, że jeśli istnieje więcej serii danych niż kolor, zostaną ponownie użyte, ponowne uruchomienie od pierwszego.

1
GGamba 16 luty 2017, 10:41