2013-04-08 3 views
5

Я пытался все это утро и до сих пор не может найти решение после прочтения связанных с пост на StackOverflowДобавление надлежащего титул ggplot

У меня есть следующий код:

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) 
} 

Мой выпуск Я не могу добавить правильный заголовок для ggplot. На каждой итерации цикла for я создаю новый dataframe, называемый df.tax, путем подмножества частей df. Я расплавляю df, а затем пытаюсь сгенерировать график с использованием ggplot.

Мне удалось сохранить каждый сюжет с другим именем файла (на основе массива имен) на каждой итерации на ggsave, но ggplot просто продолжает генерировать заголовок «paste (names [i])» для каждого сюжета.

Я пытался, получить(), паста(), лаборатории() ... и т.д., но ни одна работа

Любой знает, как я могу решить эту проблему?

ответ

11

Как уже упоминалось, joran, начиная с версии 0.9.2 ggplot2, самый простой способ установить заголовок для вашего участка - использовать ggtitle. Используя ggtitle, ваш код будет выглядеть примерно так:

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

Не нужно ссылаться на мой профиль или даже упоминать меня на самом деле. Если я ограничусь комментарием, то это потому, что у меня нет времени/желания написать ответ и полностью ожидать, что другие это сделают. :) – joran

+0

Я удалю ссылку, если вы хотите. Несмотря на то, что я рад, я лично его просмотрел, поскольку я являюсь коллегой-исследователем лыжников/данных (какой приятный сюрприз). – Wilduck

+1

Не нужно его удалять ... просто давая понять, что все в порядке, чтобы разобрать любые мои комментарии в качестве ответов, вот и все. – joran

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