2014-11-14 2 views
0

Возможно, это очень простой вопрос, но я ggplot и R beginner.ggplot изменить цвет заливки без потери цветового градиента

Я использую эту команду, чтобы получить barplot:

ggplot(data=melt, aes(x=variable, y=value, fill=value)) + 
    geom_bar(width=.8, stat="identity") + 
    xlab("Samples") + ylab("Expression") + ggtitle("Gapdh") + 
    theme(plot.title=element_text(face="bold", size=12)) + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1, size=10)) + 
    theme(axis.text.y = element_text(size=10)) 

Я хочу изменить цвет barplot, но сохраняя градиент цвета в зависимости от столбца значений. Я пробовал это, но я теряю градиент:

ggplot(data=melt, aes(x=variable, y=value, fill=value)) + 
    geom_bar(width=.8, stat="identity", fill="red") + 
    xlab("Samples") + ylab("Expression") + ggtitle("Gapdh") + 
    theme(plot.title=element_text(face="bold", size=12)) + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1, size=10)) + 
    theme(axis.text.y = element_text(size=10)) 

данные просто, только две колонки (переменная - значение):

variable value 
1 nu73 13576.49 
2 nu73t 10891.88 
3 nu81 12673.33 
4 nu81t 12159.91 
5 nu83 12570.82 
6 nu83t 11828.04 

Спасибо вам, ребята заранее

ответ

1

Вы хотите для регулировки масштаба, в частности, непрерывного масштаба цветов заливки, следовательно, функция scale_fill_continuous().

ggplot(data = melt, aes(x = variable, y = value, fill = value)) + 
    geom_bar(width = .8, stat = "identity") + 
    labs(x = "Samples", y = "Expression", title = "Gapdh") + 
    theme(plot.title = element_text(face = "bold", size = 12), 
      axis.text.x = element_text(angle = 45, hjust = 1, size = 10), 
      axis.text.y = element_text(size = 10)) + 
    scale_fill_continuous(low = "firebrick4", high = "firebrick1") 

(я слегка редактировал замышляет код. Вы можете вызвать theme один раз с несколькими аргументами, и я нахожу labs приятнее, чем куча индивидуальных вызовов по этикетированию)

Еще один вариант заключается в использовании палитр из пакета RColorBrewer (которые включены в ggplot2). Шкала scale_fill_brewer(), если для дискретных цветовых шкал вы можете «перегонять» их в непрерывные весы с scale_fill_distiller(). Например

scale_fill_distiller(type = "seq", palette = "Reds") 

Чтобы увидеть все доступные весы, запустите RColorBrewer::display.brewer.all().

+0

Да! Большое спасибо. – cucurbit

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