2012-04-18 2 views
0

ggplot2 по эксплуатации на http://had.co.nz/ggplot2/scale_manual.html предлагает использовать структуру, как:Сформировать вектор для scale_colour_manual с использованием двух входных векторов

values = c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange") 

, чтобы назначить определенные цвета к значениям.

Как один генерировать эту структуру из двух массивов:

A = c("8","4","6","10"); B = c("red","blue","darkgreen","orange") 

я получил, насколько:

rbind(A,B) 
    [,1] [,2] [,3]  [,4]  
A "8" "4" "6"   "10"  
B "red" "blue" "darkgreen" "orange" 

Но я не знаю, как превратить это в массив «X» = "Y".

Я понимаю, что это общий вопрос R, а не один конкретный для ggplot2. Но я помечаю его ggplot2, если он поможет кому-то с той же проблемой в будущем. Любой совет приветствовал ...

ответ

3

Это должно работать:

values = B 
names(values) = A 
> all.equal(values, 
+  c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange")) 
[1] TRUE 

поведения вы после мимики, что из словаря Python. Есть пары key, value, и обращение к определенному ключу возвращает значение. В этом примере R keys - это имена символьного вектора, а values - значения внутри вектора. Для ggplot2 это явно связывает ключ (например, "8") с значением цвета ("red").

+0

Благодарим Пол (извините за задержку в ответе) Я думал, что получаю уведомление от stackoverflow, но мои настройки, должно быть, были неправильными) – Sujai

+1

Я также слышал обратную связь с полезными людьми на форуме ggplot2, который подтвердил, что вы сказали (и добавлено дополнительное решение исходной проблемы использования scale_colour_manual - здесь, если оно кому-то полезно): https://groups.google.com/forum/?fromgroups#!topic/ggplot2/0k9xjSzx6aw – Sujai

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