2016-06-30 6 views
0

Кадр данных "df" имеет 4 поля. Чтобы построить график сложенной штриховкой x = «wellid», y = «Freq» (агрегаты до 1 для всех сквад), заполнены с использованием кода «property» (nlith < - nlevels (df $ property = 26) Хотите . назначить конкретный шестнадцатеричный код цвета для каждого «свойства» коды создаются и хранятся в качестве четвертого поля «hexcolor» в ЦФЕОтображение шестнадцатеричных кодов в переменной для уложенных графиков в R

нескольких записей из «ДФА» приведено ниже:

 property  wellid Freq hexcolor 
    225  BIR 009410X 0.048951049 #7F55D4 
    226  BIR 009910X 0.060150376 #7F55D4 
    227  BIR 010810X 0.000000000 #7F55D4 
    228  BIR 011010X 0.093959732 #7F55D4 
    299  BJR 065010X 0.000000000 #7F7FD4 
    300  BJR 065610X 0.006451613 #7F7FD4 
    301  BKP 006610X 0.198473282 #7FD455 
    302  BKP 009010X 0.187050360 #7FD455 
    303  BKP 009110X 0.069767442 #7FD455 

«собственность "-" hexcolor ", как в этом фрейме данных:

  property hexcolor 
    1   CIR #D455D4 
    9   CJR #D47FD4 
    10  CJQ #D47F7F 
    11  CKQ #D4D47F 
    23  BKP #7FD455 
    24  BKQ #7FD47F 
    25  BJQ #7F7F7F 
    53  AJP #557F55 
    54  AKP #55D455 
    64  AJQ #557F7F 
    85  BJP #7F7F55 
    103  BIQ #7F557F 
    116  AJR #557FD4 
    118  AIR #5555D4 
    121  BIR #7F55D4 
    234  CKP #D4D455 
    244  AIQ #55557F 
    285  CJP #D47F55 
    327  AKQ #55D47F 
    505  BJR #7F7FD4 
    537  CIQ #D4557F 
    1901  JQ #007F7F 
    1909  IR #0055D4 
    2363  A #550000 
    2365  B #70000F 
    2387   #000000 

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

plt <- ggplot(df, aes(x= wellid, y= Freq, fill= property)) + geom_bar(stat = "identity") 
    plt + theme(axis.text.x = element_text(angle = 90, size = 10)) 

Stacked Bar Relative Frequency Plot with Default Colour Table for "property" Необходимость указания цветового кода этой картины, используя «hexcolor» схему в кадре данных «ДФ». Пробовал немного без успеха !!

+2

Вы должны сказать ему, какие цвета использовать с 'scale_fill_ * ', убедившись, что они не являются факторами, добавив' + scale_fill_manual (values ​​= as.character (setNames (df_hexcolor_reference $ hexcolor, df_hexcolor_reference $ property))) 'где' df_hexcolor_reference' - это lookup data.frame. – alistaire

ответ

0

Благодаря alistaire за указание на решение:

указания взяты из :: scale_fill_manual based on another factor in ggplot2

plt <- ggplot(df, aes(x= wellid, y= Freq, fill= property)) + geom_bar(stat = "identity") + 
    theme(axis.text.x = element_text(angle = 90, size = 10)) 
    plt + scale_fill_manual(values = as.character(fourcol$hexcolor)) 

Произведено нужный ответ scale_fill_manual based on another factor in ggplot2