Сопоставление шестнадцатеричных кодов цветов в переменной для гистограмм с накоплением в R

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

Ниже приведены несколько записей из "df":

        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

Ссылка "свойство" - "шестнадцатеричный цвет" такая же, как в этом фрейме данных:

         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))

График относительной частоты составных полос с таблицей цветов по умолчанию для свойства Требуется руководство по цветовому кодированию этого изображения с использованием схемы "hexcolor" во фрейме данных "df". Пробовал немного без успеха!!


person Srikanth G    schedule 30.06.2016    source источник
comment
Вам нужно указать, какие цвета использовать с scale_fill_*, убедившись, что они не являются факторами, добавив + scale_fill_manual(values = as.character(setNames(df_hexcolor_reference$hexcolor, df_hexcolor_reference$property))), где df_hexcolor_reference — это кадр данных поиска.   -  person alistaire    schedule 30.06.2016


Ответы (1)


Спасибо Алистеру за указание на решение:

руководство взято из :: scale_fill_manual на основе другого фактора в 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 на основе другого фактора в ggplot2

person Srikanth G    schedule 30.06.2016