2013-11-15 5 views
0

Я рисую серию ящиков, а также точки сверху, но моя легенда цвета отображает все символы как маленькие квадратики. Я попытался использовать override.aes, но проблема не устранена. Бонусные баллы, если вы можете показать мне, как сделать r^2, выглядят красиво в названии.изменить символы легенды из boxplot в ggplot2

r2df.realtime=subset(r2df,yr>reconyear) 
r2df.sameyr=subset(r2df,yr==reconyear) 
ggplot()+geom_boxplot(data=r2df.realtime,aes(as.factor(yr),r2phvrcn,col='model1'),outlier.shape=3)+ 
    geom_boxplot(data=r2df,aes(x=as.factor(yr),y=r2phv,col='model2'))+ 
    geom_point(data=r2df,aes(x=as.factor(yr),y=r2recon,col='model3'),shape=6)+ 
    geom_point(data=r2df.sameyr,aes(x=as.factor(yr),y=r2phvrcn,col='model4'),shape=6)+ 
    scale_color_manual(values=c('blue','red','green','black'))+ 
    facet_grid(~mth)+ 
    guides(color=guide_legend('Model'),override.aes=list(shape=c(6,6,1,1))) 
    labs(title=paste('Real-time Ensemble of Cross-Validated Skill Scores (',expression(r^2),')',sep='')) 

link to text file with dput(r2df)

+4

Не могли бы вы сократить свой код до того, что необходимо, чтобы показать проблему? – krlmlr

+0

Это сложность, которая является проблемой .... но я удалил некоторые из меток оси и т. Д. что еще непонятно? – Dominik

ответ

0

Во-первых, удалить boxplot "фигуры" из легенды вы должны добавить show_guide=FALSE двух geom_boxplot() вызовов. Затем измените фигуры в легенде с override.aes=, вы должны поместить ее внутри guide_legend() (в вашей попытке она была помещена как отдельный аргумент внутри функции guides()).

Во-вторых, в вашем названии изменить порядок изменения функций paste() и expression().

ggplot()+ 
    geom_boxplot(data=r2df.realtime,aes(as.factor(yr),r2phvrcn,col='model1'), 
              outlier.shape=3,show_guide=FALSE)+ 
    geom_boxplot(data=r2df,aes(x=as.factor(yr),y=r2phv,col='model2'),show_guide=FALSE)+ 
    geom_point(data=r2df,aes(x=as.factor(yr),y=r2recon,col='model3'),shape=6)+ 
    geom_point(data=r2df.sameyr,aes(x=as.factor(yr),y=r2phvrcn,col='model4'),shape=6)+ 
    scale_color_manual(values=c('blue','red','green','black'))+ 
    facet_grid(~mth)+ 
    guides(color=guide_legend('Model',override.aes=list(shape=c(1,1,6,6))))+ 
    labs(title=expression(paste("Real-time Ensemble of Cross-Validated Skill Scores 
                   (",r^2,")",sep=''))) 
+0

Спасибо, но мне это не совсем понятно, что я ищу. Я все равно хотел бы сохранить форму boxplot для 'model1'. Я хотел бы отобразить строку для «model2» и треугольников для «model3» и «model4». 'show_guide = T' для 'model1' заставляет все фигуры быть ящиками. Я попытался использовать geom_segment вместо geom_boxplot для model2, но не смог заставить его работать. Результат на графике тот же, потому что для модели 2 есть только одно значение. – Dominik

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