2015-05-17 2 views
0

Я искал некоторое время на стеке, но ни один ответ не отвечает непосредственно тому, что я ищу.Цветная гистограмма в соответствии с переменной группировки

Я хочу отобразить некоторые результаты на гистограмме и покрасить столбцы в соответствии с значениями группировки в другом столбце моего набора данных. Таким образом, столбец 1 представляет собой переменную группировки («v» и «d»), а столбец 2 - построенное значение. Я пытаюсь сделать список из столбца 1, который можно использовать в качестве цветового аргумента, но я не могу найти способ точно определить его.

status diff 

d -2141,5 

v 510 

d -947 

v 867 

d -960,5 

v 903 

d -421 

v 1285,5 

d -1155 

v 556,5 

Спасибо!

+1

Здесь два варианта: по умолчанию цвета 'barplot (Даты $ дифф, цв = Даты $ статуса)', или создать вектор цветов для группировка переменной 'barplot (dat $ diff, col = ifelse (dat $ status ==" v "," green "," blue "))' – user20650

+0

Это может быть достигнуто с помощью 'library (ggplot2)' довольно легко. [Вот несколько примеров] (http://www.cookbook-r.com/Graphs/Bar_and_line_graphs_%28ggplot2%29/) – tospig

ответ

0

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

df <- data.frame(status=c('d','v','d','v','d','v','d','v','d','v'), diff=c(-2141.5,510,-947,867,-960.5,903,-421,1285.5,-1155,556.5)); 
cols <- c(d='red',v='green'); 
barplot(df$diff,col=cols[levels(df$status)[df$status]]); 

barplot

+0

Спасибо! По-видимому, ggplot2 также позволяет делать неплохие сюжеты, я должен изучить его. – user2617763

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