2016-03-01 43 views
0

我通過一個循環繪製數據以TIFF格式遵循和導出圖像:相同的顏色在不同ggplot傳說

​​

的問題是,從情節到另一個,當有類別,它不目前,傳奇的變化,而我想用視覺比較所有的情節與相同的顏色代碼。

數據:

> dput(mydata) 
structure(list(Date = structure(c(11L, 1L, 9L, 9L, 10L, 1L, 2L, 
3L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 6L, 7L, 4L, 4L, 4L, 6L, 6L, 11L, 
5L, 4L, 7L, 10L, 6L, 6L, 2L, 5L, 7L, 11L, 1L, 9L, 11L, 11L, 11L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 8L, 1L, 1L, 2L, 3L, 3L, 
4L, 5L, 5L, 8L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 4L, 4L, 5L, 6L, 
3L, 3L, 3L, 6L, 1L, 3L, 9L, 9L, 9L, 9L, 9L, 9L, 7L, 7L, 8L, 8L, 
8L, 8L, 8L, 7L, 7L, 7L, 8L, 7L, 2L, 2L, 3L, 3L, 3L, 7L, 5L, 5L, 
6L, 6L, 5L, 2L, 3L, 11L, 4L, 4L, 4L, 9L, 4L, 8L, 3L, 3L, 4L, 
3L, 3L, 1L, 5L, 4L, 4L, 2L, 6L, 2L, 2L, 2L, 3L, 6L, 3L, 4L, 5L, 
4L, 5L, 6L, 8L, 8L, 6L, 8L, 6L, 6L, 6L, 10L, 7L, 5L, 6L, 4L, 
10L, 6L, 6L, 1L, 1L, 2L, 5L, 2L, 3L, 5L, 10L, 10L, 11L, 4L, 6L, 
6L, 7L, 11L, 9L, 2L, 2L, 4L, 4L, 4L, 6L, 3L, 8L, 3L, 3L, 6L, 
6L, 4L, 6L, 5L, 5L, 9L, 11L, 7L, 8L, 5L, 5L, 5L, 6L, 6L, 6L, 
6L, 7L, 7L, 7L, 7L, 5L, 7L, 1L, 1L, 7L, 11L, 11L, 6L, 8L, 9L, 
8L, 8L, 8L, 7L, 1L, 3L, 7L, 4L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 10L, 2L, 2L, 
2L, 5L, 6L, 6L, 6L, 7L, 7L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 2L, 
4L, 11L, 7L, 5L, 1L, 1L, 1L, 6L, 7L, 6L, 10L, 1L, 2L, 4L, 5L, 
5L, 1L, 2L, 2L, 3L, 7L, 9L, 10L, 10L, 11L, 11L, 1L, 3L, 3L, 3L, 
3L, 5L, 6L, 2L, 3L, 3L, 4L, 5L, 5L, 5L, 5L, 5L, 6L, 3L, 5L, 6L, 
11L, 4L, 9L, 5L, 6L, 6L, 5L, 8L, 3L, 6L), .Label = c("01/02/2016", 
"02/02/2016", "03/02/2016", "08/02/2016", "10/02/2016", "11/02/2016", 
"16/02/2016", "22/02/2016", "26/01/2016", "27/01/2016", "28/01/2016" 
), class = "factor"), Destination = structure(c(30L, 33L, 11L, 
1L, 18L, 18L, 11L, 16L, 19L, 19L, 22L, 1L, 18L, 18L, 13L, 14L, 
13L, 18L, 24L, 24L, 11L, 24L, 2L, 33L, 25L, 1L, 30L, 5L, 24L, 
18L, 13L, 35L, 19L, 19L, 18L, 23L, 19L, 8L, 19L, 14L, 28L, 22L, 
1L, 25L, 19L, 19L, 29L, 9L, 18L, 13L, 30L, 23L, 23L, 19L, 18L, 
18L, 11L, 33L, 13L, 24L, 19L, 24L, 18L, 25L, 23L, 18L, 13L, 13L, 
24L, 14L, 24L, 23L, 19L, 30L, 14L, 4L, 20L, 24L, 24L, 24L, 24L, 
24L, 12L, 22L, 5L, 28L, 32L, 13L, 14L, 28L, 14L, 24L, 28L, 25L, 
24L, 19L, 24L, 13L, 11L, 19L, 23L, 5L, 1L, 19L, 25L, 14L, 13L, 
23L, 25L, 34L, 34L, 13L, 14L, 34L, 1L, 1L, 35L, 18L, 14L, 11L, 
13L, 25L, 33L, 13L, 24L, 11L, 24L, 24L, 30L, 21L, 24L, 24L, 34L, 
18L, 1L, 19L, 13L, 30L, 19L, 13L, 23L, 25L, 22L, 19L, 30L, 13L, 
18L, 14L, 33L, 14L, 24L, 14L, 28L, 24L, 5L, 8L, 11L, 11L, 24L, 
7L, 30L, 28L, 14L, 35L, 10L, 24L, 14L, 28L, 24L, 19L, 9L, 25L, 
22L, 25L, 14L, 13L, 35L, 37L, 13L, 22L, 30L, 19L, 18L, 24L, 19L, 
14L, 14L, 26L, 19L, 18L, 13L, 13L, 13L, 14L, 13L, 25L, 14L, 25L, 
13L, 14L, 35L, 25L, 25L, 38L, 19L, 21L, 31L, 19L, 26L, 5L, 5L, 
13L, 23L, 19L, 14L, 14L, 19L, 16L, 19L, 33L, 26L, 16L, 25L, 14L, 
14L, 14L, 33L, 16L, 14L, 25L, 33L, 33L, 35L, 19L, 33L, 33L, 14L, 
2L, 35L, 35L, 33L, 26L, 33L, 33L, 26L, 19L, 33L, 35L, 14L, 19L, 
24L, 33L, 14L, 14L, 13L, 14L, 14L, 19L, 18L, 7L, 35L, 33L, 25L, 
19L, 33L, 14L, 19L, 33L, 33L, 2L, 33L, 33L, 14L, 2L, 19L, 33L, 
33L, 33L, 14L, 19L, 11L, 24L, 18L, 6L, 8L, 7L, 30L, 6L, 20L, 
33L, 30L, 6L, 19L, 14L, 25L, 33L, 8L, 24L, 24L, 6L, 19L, 19L, 
33L, 19L, 18L, 7L, 24L, 1L, 20L, 18L, 28L, 35L, 1L, 8L, 1L, 18L, 
19L, 25L, 24L, 26L, 19L, 28L, 11L, 28L, 11L, 24L, 33L, 1L, 18L, 
24L, 18L, 13L, 7L, 13L, 11L, 28L, 19L, 18L, 19L, 24L, 20L, 30L, 
18L, 8L, 28L, 11L, 20L, 25L, 24L, 26L, 11L, 15L, 13L, 22L, 1L, 
19L, 27L, 25L, 25L, 28L, 11L, 11L, 24L, 1L, 28L, 11L, 26L, 17L, 
23L, 29L, 25L, 19L, 18L, 18L, 13L, 13L, 25L, 25L, 13L, 11L, 28L, 
18L, 27L, 5L, 34L, 13L, 21L, 9L, 27L, 13L, 34L, 14L, 22L, 21L, 
35L, 37L, 21L, 18L, 18L, 18L, 31L, 14L, 14L, 35L, 35L, 22L, 14L, 
14L, 28L, 34L, 5L, 35L, 37L, 21L, 25L, 14L, 21L, 13L, 22L, 22L, 
14L, 14L, 14L, 14L, 5L, 14L, 38L, 5L, 22L, 5L, 22L, 5L, 14L, 
5L, 5L, 22L, 21L, 5L, 13L, 5L, 3L, 5L, 14L, 14L, 14L, 21L, 19L, 
24L, 18L, 23L, 21L, 5L, 22L, 38L, 13L, 5L, 35L, 22L, 13L, 5L, 
14L, 5L, 22L, 22L, 26L, 18L, 25L, 5L, 19L, 6L, 1L, 18L, 19L, 
25L, 38L, 8L, 14L, 37L, 14L, 2L, 13L, 26L, 34L, 24L, 24L, 11L, 
38L, 26L, 18L, 34L, 14L, 24L, 16L, 24L, 26L, 7L, 28L, 14L, 25L, 
28L, 25L, 23L, 36L, 13L, 25L, 18L, 33L, 25L, 34L, 19L, 13L, 11L, 
13L, 33L, 14L, 31L, 20L, 25L, 14L, 13L, 35L), .Label = c("ARD", 
"ARP", "BBB", "BIE", "CFX", "CHR", "DDD", "DOO", "EAU", "ELY", 
"EPI", "ETR", "GEN", "GER", "GGG", "GIS", "ISE", "JUV", "LER", 
"LES", "LON", "LYR", "MON", "NER", "NGY", "NOJ", "NYO", "ORI", 
"PEO", "RAY", "RRR", "RSI", "SEI", "SEP", "VIL", "XQU", "YYY", 
"ZYZ"), class = "factor"), Categorie = c("1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1,2", 
"1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", 
"1,2", "1,2", "1,2", "1,2", "1,2", "1,3", "1,3", "1,3", "1,3", 
"1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", 
"1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", 
"1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", 
"1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "1,3", "2", "2", "2", 
"2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", 
"2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2,3", "2,3", 
"2,3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "4", "4", "4", "4", 
"4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", 
"5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", 
"5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", 
"5", "5", "3", "1,2,3", "1,2,3", "1,2,3", "1,2,3", "1,2,3", "1,2,3" 
), Portion_Longueur = c(3L, 4L, 1L, 1L, 2L, 4L, 5L, 6L, 7L, 7L, 
8L, 8L, 9L, 8L, 8L, 9L, 11L, 7L, 7L, 7L, 9L, 8L, 3L, 8L, 7L, 
11L, 2L, 9L, 8L, 5L, 8L, 12L, 3L, 4L, 1L, 3L, 3L, 3L, 4L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 10L, 4L, 4L, 5L, 6L, 6L, 7L, 
8L, 9L, 10L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 7L, 7L, 7L, 8L, 
6L, 6L, 6L, 9L, 4L, 6L, 1L, 1L, 1L, 1L, 1L, 1L, 12L, 12L, 12L, 
11L, 11L, 12L, 12L, 12L, 12L, 12L, 11L, 11L, 5L, 5L, 6L, 6L, 
6L, 10L, 8L, 8L, 8L, 8L, 9L, 5L, 6L, 3L, 7L, 7L, 7L, 1L, 7L, 
12L, 6L, 6L, 7L, 6L, 6L, 4L, 9L, 7L, 7L, 5L, 8L, 5L, 5L, 5L, 
6L, 10L, 6L, 7L, 9L, 7L, 9L, 10L, 11L, 11L, 9L, 11L, 9L, 10L, 
10L, 2L, 12L, 9L, 9L, 7L, 2L, 10L, 9L, 4L, 4L, 5L, 9L, 5L, 6L, 
8L, 2L, 2L, 3L, 7L, 8L, 10L, 11L, 3L, 1L, 5L, 5L, 7L, 7L, 7L, 
8L, 6L, 12L, 6L, 6L, 8L, 9L, 7L, 9L, 9L, 8L, 1L, 3L, 12L, 12L, 
9L, 8L, 9L, 10L, 9L, 10L, 10L, 10L, 10L, 12L, 11L, 9L, 11L, 4L, 
4L, 12L, 3L, 3L, 8L, 11L, 1L, 11L, 11L, 11L, 10L, 4L, 6L, 12L, 
7L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 7L, 8L, 8L, 9L, 9L, 9L, 8L, 8L, 
9L, 9L, 7L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 8L, 9L, 9L, 9L, 9L, 
9L, 8L, 10L, 10L, 10L, 10L, 10L, 8L, 10L, 10L, 9L, 10L, 10L, 
9L, 11L, 12L, 11L, 12L, 10L, 12L, 11L, 10L, 11L, 12L, 12L, 12L, 
12L, 12L, 10L, 12L, 12L, 10L, 12L, 11L, 12L, 11L, 12L, 11L, 11L, 
2L, 5L, 5L, 5L, 8L, 10L, 8L, 10L, 9L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 5L, 7L, 3L, 10L, 8L, 4L, 4L, 4L, 9L, 12L, 
8L, 2L, 4L, 5L, 7L, 9L, 9L, 4L, 5L, 5L, 6L, 10L, 1L, 2L, 2L, 
3L, 3L, 4L, 6L, 6L, 6L, 6L, 8L, 10L, 5L, 6L, 6L, 7L, 8L, 9L, 
8L, 9L, 8L, 9L, 6L, 8L, 10L, 3L, 7L, 1L, 9L, 10L, 8L, 8L, 11L, 
6L, 9L)), .Names = c("Date", "Destination", "Categorie", "Portion_Longueur" 
), row.names = c(NA, -521L), class = "data.frame") 

如何強制顯示所有的傳說所以顏色會不會改變?或者如何輕鬆修復每個類別的顏色,以便對所有情節都一樣?

+0

的關鍵是編碼'Categorie'着色將橫跨地塊一致作爲一個因素,並且在兩個數據幀中都具有相同的「Categorie」因子級別,而不管數據幀是否具有所有級別。有關實現此解決方案的示例,請參見[此SO回答](http://stackoverflow.com/a/34950563/496488)。 – eipi10

回答

2

您可以設置自定義色標並將其添加到您的圖中。你的循環之前,你可以添加類似以下內容:

cat.colors <- c("green", "blue", "pink", "yellow") # assign a color for each level of your factor variable Categorie 
names(cat.colors) <- levels(mydata$Categorie) 
mycolourscale <- scale_fill_manual(name = "Categorie",values = cat.colors) 

然後加:

 + mycolourscale 

您ggplot代碼和

+0

不幸的是仍然是相同的問題:請參閱編輯。非常感謝。 – ranell

+0

正如上面說的epi10,Categorie必須在原始data.frame中被編碼爲一個因子變量,然後才能在循環中對其進行子集化。然後上面的代碼(修改,以便你有每個因素的顏色)應該工作。 – Wyldsoul

+0

我還沒有堆棧,我在mydata中加載csv,當我嘗試命名(cat.colors)< - levels(mydata $ Categorie)時,它變爲null,是否正常? – ranell