2014-02-16 2 views
1

Как использовать ggplot2 с stat_summary, чтобы показать цвета по моему выбору? Напр .:Как установить несколько цветов в ggplot2 stat_summary plot?

simVol <- data.frame(simId=c(1,1,1,1,2,2,2,2), 
         farm=rep(c('farm A', 'farm A', 'farm B', 'farm B'),2), 
         period=rep(1:2,4), 
         volume=c(9,21,12,18,10,22,11,19)) 

P10meanP90 <- function(x) data.frame(
    y = mean(x), 
    ymin = quantile(x, .1), 
    ymax = quantile(x, .9) 
) 

Эта команда показывает зависимость распределения объема на каждой ферме против периода, используя стандартные цвета:

ggplot(simVol, aes(x=period, y=volume, colour=farm)) + 
    stat_summary(fun.data="P10meanP90", geom="smooth", size=2) 

Однако, если добавить colour='green' к аргументам stat_summary, это участки вместо совокупность между фермами. Я пробовал использовать colour=c('green','orange'), но это пока только зеленая линия.

Как изменить цвета в этом графике?

благодаря

ответ

2

scale_colour_manual это функция, которую вы ищете. http://docs.ggplot2.org/0.9.3.1/scale_manual.html

ggplot(simVol, aes(x=period, y=volume, colour=farm)) + 
    stat_summary(fun.data="P10meanP90", geom="smooth", size=2) + 
    scale_colour_manual(values = c("green", "orange")) 

enter image description here

+0

Perfect - спасибо! Фактически, я также использую аргумент 'fill', чтобы обеспечить цвет для диапазона P10-P90. Есть ли способ предоставить разные значения для каждой фермы? благодаря! –

+0

@RacingTadpole Я добавил ссылку на документы для 'scale_colour_manual' и другие функции, которые управляют шкалами для разных эстетических целей. Посмотрите на 'scale_fill_manual' –

+0

Спасибо. Я просто попробовал «ggplot (simVol, aes (x = period, y = volume, color = farm)) + stat_summary (fun.data =« P10meanP90 », geom =« smooth », size = 2) + scale_colour_manual (значения = c («зеленый», «оранжевый»)) + scale_fill_manual (значения = c («голубой», «розовый»)), а заливка по-прежнему серая - я использую ее неправильно? –

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