2009-08-06 6 views
6

Si je crée une fenêtre de traçage dans R avec m lignes et n colonnes, comment puis-je donner un titre principal au graphique "global"? Par exemple, je pourrais avoir trois diagrammes de dispersion montrant la relation entre les scores GPA et SAT pour trois écoles différentes. Comment pourrais-je donner un titre de maître aux trois parcelles, comme «score SAT vs GPA pour 3 écoles en Californie»?Titre global de la fenêtre de traçage

Répondre

10

Les méthodes les plus évidentes qui me viennent à l'esprit sont d'utiliser soit Lattice ou ggplot2. Voici un exemple utilisant treillis:

library(lattice) 
depthgroup<-equal.count(quakes$depth, number=3, overlap=0) 
magnitude<-equal.count(quakes$mag, number=2, overlap=0) 
xyplot(lat ~ long | depthgroup*magnitude, 
data=quakes, 
main="Fiji Earthquakes", 
ylab="latitude", xlab="longitude", 
pch=".", 
scales=list(x=list(alternating=c(1,1,1))), 
between=list(y=1), 
par.strip.text=list(cex=0.7), 
par.settings=list(axis.text=list(cex=0.7))) 

En réseau, vous devez modifier le paramètre principal =.

L'exemple ci-dessus a été levé de here.

Je n'ai pas un bon exemple ggplot2, mais il y a une métrique d'exemples avec ggpolot2 au learn r blog.

Une option pourrait être this example où ils utilisent ggplot2 et

opts (title = "RSS and NINO3.4 Temperature Anomalies \nand SATO Index Trends Since 1980") 

Mais vous devez avoir les trois graphiques créés dans gg2plot, naturellement.

Je pense que vous devriez être bien avec treize ou ggplot2.

+0

MERVEILLEUX !!!! Merci!!!! –

+0

combien coûte un metricasston? :) – dalloliogm

+0

Que voulez-vous dire quand vous dites que ggplot2 n'a pas de support pour les étiquettes des axes secondaires? Vous pouvez les personnaliser lorsque vous définissez l'échelle, par ex. scale_y_continous ('libellé de l'axe y'). – dalloliogm

13

Utilisation du système graphique traditionnel, voici deux façons:

(1)

par(mfrow=c(2,2)) 
for(i in 1:4) plot(1:10) 
mtext("Title",side=3,outer=TRUE,padj=3) 

(2)

par(mfrow=c(2,2)) 
for(i in 1:4) plot(1:10) 
par(mfrow=c(1,1),mar=rep(0,4),oma=rep(0,4)) 
plot.window(0:1,0:1) 
text(.5,.98,"Title") 
+0

Ceci est une excellente réponse aussi, et ne nécessite pas ggplot2 ou treillis. –

+0

Merveilleux, je cherchais juste cela - merci! –

Questions connexes