2015-03-02 2 views
1

У меня есть диаграмма, которую я хочу покрасить плотность бункера (как показано ниже). Но я хочу иметь одиночные бункеры (значение = 1) как черные и более высокие значения либо как один другой цвет, либо лучше, как градиент.асимметричный градиент цвета с ggplot bin2d

У меня был только один черный -> красный градиент или полностью дискретные цвета, которые слишком запутывают. Я не смог успешно сопоставить цвета вручную с переменной «count» функции bin2d. Может ли кто-нибудь предложить исправить?

Мой код:

ggplot(x, aes(x=as.factor(V4), y=V2)) + 
    geom_bin2d(binwidth = c(1,100)) + 
    scale_fill_continuous(low="black", high="red") + 
    facet_wrap(~V1, nrow = 1) 

enter image description here

Увеличенный вариант, показывающий, как трудно дифференцировать 2s enter image description here

Благодарности

EDIT: Я понял, лучший способ чтобы представить это. То, что я хочу, это шкала, которая выглядит следующим образом: enter image description here

Мои данные (х) выглядит следующим образом:

V1 V2 V3 V4 
    5 5831 30 A 
    5 20451 38 A 
    5 23151 34 B 
    5 30061 39 A 
    5 34191 32 B 
    5 41641 30 A 

Так, V2 является позиция ряда вверх по оси у, V1 является фасеты и V4 - вертикальные столбцы. Существование строки (ранее определяемой V3, но не соответствующей здесь) вносит вклад в число bin2d.

+0

Люди могут быть больше помощи, если вы предоставите данные примера – arvi1000

+0

(что в 'x'?) Я добавил его, спасибо. – Daniel

ответ

0

Мне это удалось. Найдено, что можно сопоставить графу связывания с использованием «..count ..», так что код теперь гласит:

ggplot(x, aes(x=as.factor(V4), y=V2)) + 
    geom_bin2d(binwidth = c(1,100), aes(fill=as.factor(..count..))) + 
    scale_fill_manual(values = c("#000000", "#FF9900", "#FF6600", "#FF3300")) + 
    scale_y_continuous(breaks = pretty_breaks(12)) + 
    facet_wrap(~V1, nrow = 1) 
Смежные вопросы