Я использую ggplot2 для изучения результатов некоторых тестов на основе агента. Модель может закончиться в одном из трех раундов за реализацию, и поэтому я заинтересован в том, как утилит проигрывателя различаются в зависимости от того, что заканчивается игра и их относительное положение в 2D-пространстве.
Все это означает, что я создал график facet_wrap, чтобы показать это для каждого раунда, но я также хотел бы аннотировать каждый график с cor (x, y) для подмножества данных, представленных в каждой грани. Есть ли способ сказать ggplot2, что я хотел бы, чтобы аннотация использовала подмножество данных, созданных facet_wrap? Вот код, который у меня есть до сих пор, и то, что он производит
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
Как видите, есть две проблемы:
- Значение \rho представляет собой полный набор данных, а не подмножества 'round'. Есть ли способ получить cor (x, y) для печати на основе только данных, отображаемых на каждом графике?
- Аннотации следует читать "\ rho = some_value", но вместо этого я получаю "= (\ rho, value)"; есть ли способ исправить это?