Sto utilizzando ggplot2 per esplorare il risultato di alcuni test su un modello basato su agente. Il modello può terminare in uno dei tre round per realizzazione, e come tale sono interessato a come le utilità dei giocatori differiscono in termini di cosa termina il gioco e della loro posizione relativa nello spazio 2D.Creazione di un complimento facet_wrap con ggplot2 con annotazioni diverse in ciascun grafico
Tutto questo per dire che ho generato un grafico facet_wrap per mostrare questo per ogni round, ma vorrei anche annotare ogni grafico con il cor (x, y) per il sottoinsieme di dati rappresentati in ogni facet. C'è un modo per dire a ggplot2 che vorrei che l'annotazione usasse il sottoinsieme di dati generati da facet_wrap? Ecco il codice che ho finora, e ciò che sta producendo
library(ggplot2)
# Load data
abm.data<-read.csv("ABM_results.csv")
# Create new colun for area of Pareto set
attach(abm.data)
area<-abs(((x3*(y2-y1))+(x2*(y1-y3))+(x1*(y3-y2)))/2)
abm.data<-transform(abm.data,area=area)
detach(abm.data)
# Compare area of Pareto set with player utility
png("area_p1.png",res=100,pointsize=20,height=500,width=1600)
area.p1<-ggplot(abm.data,aes(x=area))+geom_point(aes(y=U1_2,colour="Player 1",alpha=0.4))+facet_wrap(~round,ncol=3)+
annotate("text",0.375,-1.25,label=paste("rho=",round(cor(abm.data$area,abm.data$U1_2),2)), parse=TRUE)+
scale_colour_manual(values=c("Player 1"="red"))
area.p1+xlab("Area of Pareto Set")+ylab("Player Utility at Game End")+
opts(title="Final Player 1 Utility by Pareto Set Size and Round Game Ends",legend.position="none")
dev.off()
area_p1 http://www.drewconway.com/zia/wp-content/uploads/2010/01/area_p1.png
Come si può vedere, ci sono due problemi: il valore
- L'\ rho è del pieno set di dati, piuttosto che i sottoinsiemi di "round". C'è un modo per ottenere il cor (x, y) da stampare basandosi solo sui dati mostrati in ogni trama?
- L'annotazione dovrebbe leggere "\ rho = valore_ausuale", ma invece ricevo "= (\ rho, valore);" C'è un modo per risolvere questo problema?
Invece di 'cbind'ing xey in' df.cor', vi consiglio 'geom_text (AES (x = 0, y = 3, label = V1), ...) ' – hadley
Destra, risolto. Grazie. – rcs
Eccezionale, è perfetto! Stavo per tornare ad aggiungere i valori a mano tramite Inkscape ... – DrewConway