2013-04-08 19 views
5

Ho cercato questo per tutta la mattina e ancora non riesce a trovare una soluzione dopo aver letto post correlati su StackOverflowAggiunta di un titolo proprio per ggplot

ho il seguente codice:

names <- colnames(df[17:length(df)]) 

counter = 17L 

for (i in 1:length(names)) { 
    df.tax <- subset(df, df[,c(counter)] != 0) 
    counter = counter + 1L 
    meta <- subset(df.tax, select=c(1:16)) 
    meltmeta <- melt(meta, id=c("Collector", "Year","Week","Cities","Provinces")) 
    ppv <- ggplot(meltmeta, aes(title = paste(names[i]), factor(Provinces), value)) 
    ppv + geom_boxplot() + geom_boxplot(aes(fill=Collector), alpha=I(0.5)) + geom_point(aes(color=Collector), size=1) +facet_wrap(~variable, scale="free") 
    ggsave(file = paste(names[i], sep=".","provinces_vs_climate.pdf"), width=16, height=8) 
} 

Il mio problema è, non posso aggiungere un titolo appropriato per ggplot. Ad ogni iterazione del ciclo for, sto generando un nuovo dataframe chiamato df.tax inserendo parti di df. Mi sciolgo e poi provo a generare un grafico usando ggplot.

Sono riuscito a salvare ogni trama con un nome file diverso (basato sulla matrice dei nomi) ogni iterazione su ggsave, ma ggplot continua a generare il titolo "incolla (nomi [i])" per ogni trama.

ho provato, get(), pasta(), i laboratori() ... ecc, ma nessuno di lavoro

Qualcuno sa come posso risolvere questo problema?

risposta

11

Come menzionato da joran, dalla versione 0.9.2 di ggplot2, il modo più semplice per impostare un titolo per la trama è utilizzare ggtitle. Utilizzando ggtitle il codice sarebbe simile a questa:

for (i in 1:length(names)) { 
    df.tax <- subset(df, df[,c(counter)] != 0) 
    counter = counter + 1L 
    meta <- subset(df.tax, select=c(1:16)) 
    meltmeta <- melt(meta, id=c("Collector", "Year","Week","Cities","Provinces")) 
    ppv <- ggplot(meltmeta, aes(factor(Provinces), value)) 
    ppv <- ppv + geom_boxplot() 
    ppv <- ppv + geom_boxplot(aes(fill=Collector), alpha=I(0.5)) 
    ppv <- ppv + geom_point(aes(color=Collector), size=1) 
    ppv <- ppv + facet_wrap(~variable, scale="free") 
    ppv <- ppv + ggtitle(paste(names[i])) 
    ggsave(file = paste(names[i], sep=".","provinces_vs_climate.pdf"), width=16, height=8) 
} 
+1

Non c'è bisogno di creare un collegamento al mio profilo, o anche a me parlare davvero. Se mi limito a un commento è perché non ho tempo/voglia di scrivere una risposta e mi aspetto che gli altri facciano altrettanto. :) – joran

+0

Rimuoveremo il link se preferisci. Anche se sono contento di averlo cliccato, personalmente, dato che sono un compagno di sci nordico/analista di dati (che piacevole sorpresa). – Wilduck

+1

Non c'è bisogno di rimuoverlo ... solo per farti sapere che è del tutto perfetto per cinguettare i miei commenti come risposte, tutto qui. – joran

Problemi correlati