ggplot2基于迭代for循环变量绘制标题

时间:2016-05-23 22:43:44

标签: r ggplot2

我想用变量(k)标题每个绘图我用来在for循环中迭代:

> MyData
     Name Stat Year value
1  Site01  Max 2013 29.88
2  Site01  Med 2013 29.67
3  Site01  Min 2013 29.16
4  Site01  Max 2020 31.21
5  Site01  Med 2020 30.38
6  Site01  Min 2020 29.38
7  Site01  Max 2040 35.50
8  Site01  Med 2040 33.17
9  Site01  Min 2040 29.60
10 Site02  Max 2013 53.70
11 Site02  Med 2013 53.49
12 Site02  Min 2013 53.20
13 Site02  Max 2020 53.10
14 Site02  Med 2020 53.01
15 Site02  Min 2020 52.55
16 Site02  Max 2040 52.04
17 Site02  Med 2040 51.74
18 Site02  Min 2040 50.98

pdf("plots.pdf")
for (k in unique(MyData$Name)){
subdata <- subset(MyData, Name == k)

     print(ggplot(subdata, aes(x = Year, y = value, colour = Stat)) 
          + geom_line() + expand_limits(y=c(0,100)) + ggtitle(k))

}
dev.off()

使用ggtitle()的字符串(例如:ggtitle("Name"))或完全删除ggtitle()后,生成的图表很好。

关于如何在每个图上包含迭代器变量(k)的值作为标题的任何建议?

2 个答案:

答案 0 :(得分:2)

MyData $ Name中的数据是什么类?

尝试将ggtitle(k)替换为ggtitle(as.character(k)),以确保您传递ggtitle一个字符串。

答案 1 :(得分:0)

您可以使用paste(),例如:

ggtitle(paste(your_value))