summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-07-10 10:39:22 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-07-10 12:03:36 +0300
commitbd7a28a89c30e83a2af516aa3b6914c7389f32aa (patch)
treeef739015878cacdd8b9b596235e17ea8666713f3 /examples
parent90ac3929a64a92c5c6092a791d04dba9088cc501 (diff)
Improved variant data mapping
Rainfall example modified to demonstrate mapping. Change-Id: I385e018524f4c9df5914c2cf4f8ae643f585f5c7 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/rainfall/data/raindata.txt1528
-rw-r--r--examples/rainfall/main.cpp129
-rw-r--r--examples/rainfall/rainfall.pro7
-rw-r--r--examples/rainfall/rainfallchart.cpp178
-rw-r--r--examples/rainfall/rainfallchart.h76
5 files changed, 1619 insertions, 299 deletions
diff --git a/examples/rainfall/data/raindata.txt b/examples/rainfall/data/raindata.txt
index faa636d4..7f581bff 100644
--- a/examples/rainfall/data/raindata.txt
+++ b/examples/rainfall/data/raindata.txt
@@ -1,170 +1,1358 @@
-# Rainfall per month from 2000 to 2012 in Northern Finland (Sodankylä, Utsjoki, Kuusamo)
-
-2000,1, 72,
-2000,2, 47,
-2000,3, 37,
-2000,4, 79,
-2000,5, 42,
-2000,6, 73,
-2000,7, 94,
-2000,8, 37,
-2000,9, 17,
-2000,10,69,
-2000,11,42,
-2000,12,42,
-
-2001,1, 25,
-2001,2, 47,
-2001,3, 20,
-2001,4, 70,
-2001,5, 27,
-2001,6, 40,
-2001,7, 123,
-2001,8, 39,
-2001,9, 66,
-2001,10,55,
-2001,11,29,
-2001,12,12,
-
-2002,1, 24,
-2002,2, 45,
-2002,3, 27,
-2002,4, 30,
-2002,5, 16,
-2002,6, 98,
-2002,7, 122,
-2002,8, 20,
-2002,9, 50,
-2002,10,24,
-2002,11,22,
-2002,12,12,
-
-2003,1, 43,
-2003,2, 17,
-2003,3, 26,
-2003,4, 22,
-2003,5, 60,
-2003,6, 14,
-2003,7, 86,
-2003,8, 77,
-2003,9, 69,
-2003,10,49,
-2003,11,23,
-2003,12,44,
-
-2004,1, 15,
-2004,2, 19,
-2004,3, 10,
-2004,4, 11,
-2004,5, 41,
-2004,6, 29,
-2004,7, 49,
-2004,8, 72,
-2004,9, 50,
-2004,10,18,
-2004,11,19,
-2004,12,40,
-
-2005,1, 60,
-2005,2, 24,
-2005,3, 12,
-2005,4, 50,
-2005,5, 88,
-2005,6, 32,
-2005,7, 76,
-2005,8, 55,
-2005,9, 92,
-2005,10,35,
-2005,11,105,
-2005,12,59,
-
-2006,1, 27,
-2006,2, 18,
-2006,3, 17,
-2006,4, 26,
-2006,5, 24,
-2006,6, 18,
-2006,7, 35,
-2006,8, 28,
-2006,9, 80,
-2006,10,52,
-2006,11,43,
-2006,12,44,
-
-2007,1, 41,
-2007,2, 21,
-2007,3, 30,
-2007,4, 20,
-2007,5, 53,
-2007,6, 29,
-2007,7, 139,
-2007,8, 52,
-2007,9, 51,
-2007,10,24,
-2007,11,47,
-2007,12,33,
-
-2008,1, 67,
-2008,2, 19,
-2008,3, 30,
-2008,4, 31,
-2008,5, 29,
-2008,6, 79,
-2008,7, 75,
-2008,8, 99,
-2008,9, 34,
-2008,10,52,
-2008,11,60,
-2008,12,20,
-
-2009,1, 9,
-2009,2, 22,
-2009,3, 11,
-2009,4, 10,
-2009,5, 69,
-2009,6, 30,
-2009,7, 78,
-2009,8, 93,
-2009,9, 70,
-2009,10,32,
-2009,11,56,
-2009,12,23,
-
-2010,1, 12,
-2010,2, 28,
-2010,3, 55,
-2010,4, 20,
-2010,5, 65,
-2010,6, 26,
-2010,7, 134,
-2010,8, 57,
-2010,9, 51,
-2010,10,53,
-2010,11,8,
-2010,12,9,
-
-2011,1, 34,
-2011,2, 20,
-2011,3, 30,
-2011,4, 31,
-2011,5, 42,
-2011,6, 78,
-2011,7, 85,
-2011,8, 33,
-2011,9, 42,
-2011,10,87,
-2011,11,41,
-2011,12,72,
-
-2012,1, 32,
-2012,2, 42,
-2012,3, 30,
-2012,4, 50,
-2012,5, 30,
-2012,6, 70,
-2012,7, 52,
-2012,8, 20,
-2012,9, 99,
-2012,10,70,
-2012,11,69,
-2012,12,49
+# Fictitious rainfall per month from 1900 to 2012 in three cities
+# Format: year, month, city 1 rainfall, city 2 rainfall, city 3 rainfall
+1900, 1, 58, 60, 40
+1900, 2, 48, 101, 47
+1900, 3, 58, 90, 25
+1900, 4, 59, 81, 33
+1900, 5, 51, 90, 24
+1900, 6, 91, 92, 55
+1900, 7, 92, 124, 34
+1900, 8, 89, 124, 30
+1900, 9, 50, 89, 16
+1900, 10, 69, 100, 55
+1900, 11, 78, 86, 15
+1900, 12, 63, 62, 30
+1901, 1, 34, 56, 50
+1901, 2, 31, 93, 54
+1901, 3, 72, 98, 34
+1901, 4, 88, 104, 18
+1901, 5, 66, 107, 20
+1901, 6, 121, 123, 34
+1901, 7, 100, 133, 46
+1901, 8, 129, 90, 64
+1901, 9, 98, 75, 56
+1901, 10, 77, 84, 56
+1901, 11, 42, 62, 38
+1901, 12, 62, 94, 22
+1902, 1, 58, 80, 37
+1902, 2, 43, 56, 16
+1902, 3, 53, 92, 9
+1902, 4, 81, 87, 33
+1902, 5, 85, 86, 60
+1902, 6, 98, 98, 32
+1902, 7, 100, 100, 54
+1902, 8, 107, 116, 69
+1902, 9, 86, 101, 43
+1902, 10, 71, 112, 34
+1902, 11, 43, 61, 7
+1902, 12, 30, 77, 21
+1903, 1, 38, 89, 12
+1903, 2, 43, 95, 29
+1903, 3, 67, 81, 49
+1903, 4, 59, 104, 32
+1903, 5, 79, 80, 64
+1903, 6, 117, 123, 53
+1903, 7, 104, 101, 49
+1903, 8, 111, 137, 56
+1903, 9, 68, 72, 23
+1903, 10, 81, 100, 62
+1903, 11, 68, 67, 50
+1903, 12, 34, 76, 42
+1904, 1, 65, 66, 33
+1904, 2, 41, 95, 18
+1904, 3, 46, 101, 31
+1904, 4, 53, 72, 32
+1904, 5, 82, 104, 52
+1904, 6, 123, 102, 32
+1904, 7, 109, 127, 30
+1904, 8, 100, 114, 67
+1904, 9, 91, 99, 45
+1904, 10, 79, 84, 62
+1904, 11, 38, 86, 30
+1904, 12, 71, 56, 14
+1905, 1, 59, 64, 39
+1905, 2, 75, 73, 32
+1905, 3, 30, 102, 36
+1905, 4, 86, 83, 39
+1905, 5, 93, 66, 31
+1905, 6, 118, 137, 36
+1905, 7, 129, 95, 31
+1905, 8, 104, 128, 56
+1905, 9, 59, 87, 61
+1905, 10, 54, 86, 56
+1905, 11, 46, 78, 51
+1905, 12, 57, 94, 47
+1906, 1, 75, 79, 17
+1906, 2, 72, 91, 44
+1906, 3, 52, 77, 32
+1906, 4, 63, 94, 41
+1906, 5, 83, 92, 48
+1906, 6, 121, 98, 65
+1906, 7, 93, 129, 60
+1906, 8, 104, 100, 48
+1906, 9, 90, 102, 59
+1906, 10, 58, 74, 42
+1906, 11, 52, 57, 9
+1906, 12, 53, 87, 28
+1907, 1, 74, 82, 50
+1907, 2, 45, 76, 10
+1907, 3, 38, 62, 37
+1907, 4, 58, 93, 59
+1907, 5, 66, 69, 21
+1907, 6, 102, 112, 42
+1907, 7, 125, 129, 30
+1907, 8, 108, 128, 51
+1907, 9, 81, 98, 23
+1907, 10, 58, 84, 45
+1907, 11, 68, 70, 51
+1907, 12, 70, 76, 29
+1908, 1, 49, 75, 11
+1908, 2, 56, 73, 45
+1908, 3, 79, 93, 29
+1908, 4, 93, 82, 39
+1908, 5, 70, 87, 52
+1908, 6, 113, 107, 34
+1908, 7, 120, 97, 40
+1908, 8, 92, 95, 74
+1908, 9, 88, 83, 16
+1908, 10, 57, 67, 33
+1908, 11, 30, 55, 12
+1908, 12, 37, 85, 54
+1909, 1, 67, 79, 47
+1909, 2, 68, 101, 7
+1909, 3, 59, 94, 14
+1909, 4, 58, 93, 49
+1909, 5, 79, 71, 32
+1909, 6, 129, 126, 68
+1909, 7, 82, 138, 52
+1909, 8, 96, 124, 73
+1909, 9, 85, 72, 27
+1909, 10, 92, 107, 61
+1909, 11, 42, 97, 51
+1909, 12, 31, 96, 33
+1910, 1, 71, 104, 27
+1910, 2, 76, 103, 6
+1910, 3, 53, 70, 13
+1910, 4, 71, 102, 37
+1910, 5, 63, 96, 34
+1910, 6, 112, 106, 59
+1910, 7, 81, 94, 28
+1910, 8, 98, 107, 26
+1910, 9, 63, 77, 21
+1910, 10, 60, 72, 39
+1910, 11, 36, 66, 12
+1910, 12, 62, 99, 36
+1911, 1, 78, 101, 48
+1911, 2, 35, 61, 38
+1911, 3, 48, 86, 24
+1911, 4, 78, 93, 31
+1911, 5, 90, 92, 49
+1911, 6, 89, 115, 64
+1911, 7, 129, 90, 46
+1911, 8, 88, 116, 35
+1911, 9, 91, 109, 64
+1911, 10, 95, 78, 45
+1911, 11, 55, 103, 8
+1911, 12, 36, 79, 10
+1912, 1, 30, 90, 15
+1912, 2, 49, 76, 37
+1912, 3, 79, 68, 45
+1912, 4, 74, 90, 52
+1912, 5, 61, 99, 30
+1912, 6, 112, 93, 39
+1912, 7, 88, 110, 48
+1912, 8, 99, 138, 47
+1912, 9, 92, 93, 56
+1912, 10, 86, 98, 46
+1912, 11, 31, 104, 14
+1912, 12, 60, 101, 19
+1913, 1, 71, 103, 37
+1913, 2, 42, 104, 26
+1913, 3, 68, 66, 31
+1913, 4, 81, 108, 57
+1913, 5, 77, 88, 64
+1913, 6, 98, 94, 46
+1913, 7, 127, 111, 36
+1913, 8, 91, 95, 48
+1913, 9, 51, 110, 23
+1913, 10, 77, 73, 46
+1913, 11, 36, 103, 11
+1913, 12, 45, 66, 40
+1914, 1, 55, 78, 21
+1914, 2, 40, 80, 6
+1914, 3, 71, 84, 12
+1914, 4, 56, 111, 23
+1914, 5, 79, 84, 17
+1914, 6, 124, 105, 62
+1914, 7, 121, 95, 68
+1914, 8, 81, 121, 37
+1914, 9, 64, 65, 52
+1914, 10, 56, 106, 27
+1914, 11, 53, 97, 52
+1914, 12, 75, 104, 39
+1915, 1, 37, 86, 6
+1915, 2, 74, 85, 30
+1915, 3, 75, 77, 49
+1915, 4, 72, 104, 37
+1915, 5, 88, 95, 41
+1915, 6, 111, 122, 53
+1915, 7, 112, 108, 43
+1915, 8, 119, 107, 51
+1915, 9, 85, 95, 43
+1915, 10, 76, 69, 48
+1915, 11, 42, 88, 48
+1915, 12, 42, 68, 13
+1916, 1, 70, 100, 30
+1916, 2, 64, 77, 10
+1916, 3, 45, 104, 26
+1916, 4, 74, 98, 53
+1916, 5, 52, 86, 26
+1916, 6, 105, 139, 56
+1916, 7, 123, 90, 36
+1916, 8, 87, 99, 32
+1916, 9, 73, 107, 30
+1916, 10, 79, 109, 51
+1916, 11, 45, 69, 43
+1916, 12, 62, 85, 11
+1917, 1, 73, 87, 5
+1917, 2, 61, 102, 18
+1917, 3, 48, 71, 50
+1917, 4, 83, 95, 33
+1917, 5, 97, 102, 38
+1917, 6, 117, 114, 66
+1917, 7, 127, 107, 66
+1917, 8, 120, 101, 36
+1917, 9, 79, 102, 44
+1917, 10, 56, 114, 38
+1917, 11, 66, 69, 36
+1917, 12, 33, 71, 52
+1918, 1, 67, 76, 42
+1918, 2, 71, 95, 33
+1918, 3, 51, 56, 28
+1918, 4, 95, 66, 50
+1918, 5, 77, 92, 51
+1918, 6, 91, 92, 64
+1918, 7, 103, 97, 51
+1918, 8, 90, 116, 55
+1918, 9, 72, 108, 34
+1918, 10, 60, 76, 55
+1918, 11, 63, 100, 44
+1918, 12, 30, 65, 12
+1919, 1, 58, 89, 48
+1919, 2, 45, 102, 29
+1919, 3, 48, 101, 47
+1919, 4, 68, 105, 64
+1919, 5, 71, 112, 18
+1919, 6, 129, 90, 73
+1919, 7, 120, 95, 73
+1919, 8, 96, 109, 35
+1919, 9, 70, 92, 20
+1919, 10, 61, 90, 41
+1919, 11, 37, 103, 6
+1919, 12, 70, 95, 25
+1920, 1, 43, 86, 52
+1920, 2, 69, 87, 51
+1920, 3, 61, 79, 27
+1920, 4, 65, 103, 51
+1920, 5, 60, 66, 21
+1920, 6, 80, 129, 50
+1920, 7, 106, 127, 56
+1920, 8, 110, 120, 39
+1920, 9, 71, 110, 64
+1920, 10, 79, 78, 58
+1920, 11, 51, 69, 41
+1920, 12, 56, 83, 8
+1921, 1, 65, 94, 10
+1921, 2, 32, 61, 44
+1921, 3, 76, 75, 24
+1921, 4, 52, 76, 55
+1921, 5, 50, 81, 46
+1921, 6, 128, 123, 48
+1921, 7, 92, 122, 38
+1921, 8, 102, 107, 50
+1921, 9, 93, 88, 44
+1921, 10, 96, 92, 24
+1921, 11, 64, 90, 38
+1921, 12, 34, 58, 38
+1922, 1, 75, 68, 50
+1922, 2, 40, 89, 29
+1922, 3, 31, 72, 46
+1922, 4, 80, 101, 22
+1922, 5, 94, 89, 61
+1922, 6, 85, 100, 65
+1922, 7, 111, 132, 32
+1922, 8, 83, 110, 45
+1922, 9, 81, 90, 32
+1922, 10, 60, 88, 22
+1922, 11, 45, 59, 37
+1922, 12, 34, 73, 36
+1923, 1, 46, 92, 47
+1923, 2, 75, 73, 5
+1923, 3, 58, 65, 21
+1923, 4, 83, 99, 47
+1923, 5, 64, 71, 37
+1923, 6, 124, 120, 57
+1923, 7, 114, 132, 32
+1923, 8, 113, 136, 56
+1923, 9, 54, 91, 43
+1923, 10, 57, 107, 26
+1923, 11, 75, 85, 43
+1923, 12, 38, 71, 29
+1924, 1, 66, 95, 49
+1924, 2, 72, 92, 48
+1924, 3, 34, 86, 17
+1924, 4, 58, 69, 23
+1924, 5, 77, 71, 25
+1924, 6, 117, 125, 27
+1924, 7, 105, 105, 33
+1924, 8, 83, 124, 25
+1924, 9, 99, 107, 57
+1924, 10, 55, 75, 59
+1924, 11, 47, 93, 5
+1924, 12, 71, 73, 46
+1925, 1, 30, 78, 41
+1925, 2, 33, 59, 48
+1925, 3, 39, 59, 8
+1925, 4, 82, 82, 35
+1925, 5, 65, 76, 21
+1925, 6, 99, 97, 62
+1925, 7, 82, 104, 63
+1925, 8, 116, 111, 67
+1925, 9, 97, 82, 25
+1925, 10, 63, 78, 55
+1925, 11, 32, 86, 50
+1925, 12, 52, 63, 13
+1926, 1, 76, 94, 52
+1926, 2, 50, 62, 34
+1926, 3, 41, 95, 52
+1926, 4, 84, 68, 17
+1926, 5, 52, 76, 33
+1926, 6, 97, 125, 49
+1926, 7, 92, 137, 37
+1926, 8, 90, 127, 30
+1926, 9, 60, 98, 42
+1926, 10, 54, 113, 33
+1926, 11, 62, 91, 52
+1926, 12, 62, 87, 48
+1927, 1, 54, 64, 30
+1927, 2, 60, 99, 30
+1927, 3, 45, 81, 36
+1927, 4, 61, 82, 58
+1927, 5, 57, 65, 57
+1927, 6, 125, 90, 56
+1927, 7, 104, 132, 68
+1927, 8, 127, 96, 66
+1927, 9, 77, 96, 15
+1927, 10, 68, 95, 55
+1927, 11, 55, 76, 38
+1927, 12, 78, 82, 36
+1928, 1, 67, 56, 45
+1928, 2, 51, 96, 51
+1928, 3, 63, 72, 15
+1928, 4, 85, 85, 30
+1928, 5, 54, 72, 46
+1928, 6, 90, 100, 26
+1928, 7, 103, 133, 29
+1928, 8, 94, 110, 29
+1928, 9, 71, 103, 63
+1928, 10, 79, 69, 62
+1928, 11, 49, 55, 24
+1928, 12, 33, 63, 12
+1929, 1, 48, 62, 20
+1929, 2, 77, 62, 51
+1929, 3, 70, 75, 8
+1929, 4, 83, 81, 23
+1929, 5, 64, 92, 56
+1929, 6, 126, 106, 35
+1929, 7, 96, 118, 45
+1929, 8, 80, 120, 46
+1929, 9, 94, 88, 62
+1929, 10, 50, 102, 33
+1929, 11, 62, 76, 47
+1929, 12, 70, 68, 33
+1930, 1, 51, 100, 30
+1930, 2, 60, 57, 46
+1930, 3, 65, 78, 38
+1930, 4, 70, 67, 37
+1930, 5, 83, 106, 62
+1930, 6, 127, 126, 51
+1930, 7, 108, 137, 61
+1930, 8, 81, 117, 69
+1930, 9, 51, 93, 37
+1930, 10, 56, 78, 63
+1930, 11, 38, 65, 18
+1930, 12, 32, 72, 19
+1931, 1, 76, 57, 15
+1931, 2, 62, 71, 53
+1931, 3, 32, 70, 25
+1931, 4, 76, 96, 51
+1931, 5, 85, 76, 61
+1931, 6, 112, 111, 57
+1931, 7, 85, 108, 42
+1931, 8, 125, 114, 29
+1931, 9, 89, 92, 27
+1931, 10, 95, 83, 19
+1931, 11, 34, 103, 25
+1931, 12, 33, 102, 50
+1932, 1, 38, 87, 6
+1932, 2, 66, 101, 15
+1932, 3, 40, 63, 27
+1932, 4, 60, 107, 15
+1932, 5, 98, 83, 27
+1932, 6, 122, 104, 48
+1932, 7, 92, 137, 46
+1932, 8, 104, 129, 29
+1932, 9, 63, 95, 39
+1932, 10, 76, 83, 35
+1932, 11, 62, 65, 43
+1932, 12, 75, 78, 7
+1933, 1, 71, 90, 7
+1933, 2, 72, 67, 32
+1933, 3, 32, 102, 25
+1933, 4, 67, 107, 39
+1933, 5, 78, 95, 43
+1933, 6, 115, 104, 33
+1933, 7, 127, 135, 74
+1933, 8, 99, 137, 52
+1933, 9, 57, 94, 51
+1933, 10, 76, 96, 28
+1933, 11, 40, 70, 12
+1933, 12, 30, 64, 12
+1934, 1, 70, 62, 35
+1934, 2, 34, 71, 7
+1934, 3, 66, 96, 7
+1934, 4, 60, 75, 36
+1934, 5, 67, 110, 15
+1934, 6, 93, 124, 31
+1934, 7, 123, 109, 69
+1934, 8, 80, 97, 57
+1934, 9, 69, 82, 51
+1934, 10, 95, 67, 53
+1934, 11, 61, 65, 24
+1934, 12, 71, 82, 14
+1935, 1, 53, 59, 46
+1935, 2, 36, 76, 7
+1935, 3, 66, 102, 7
+1935, 4, 80, 85, 55
+1935, 5, 65, 104, 30
+1935, 6, 86, 134, 68
+1935, 7, 128, 109, 44
+1935, 8, 117, 111, 45
+1935, 9, 60, 72, 53
+1935, 10, 56, 83, 62
+1935, 11, 74, 69, 42
+1935, 12, 49, 100, 11
+1936, 1, 38, 64, 28
+1936, 2, 67, 101, 39
+1936, 3, 33, 65, 54
+1936, 4, 74, 110, 25
+1936, 5, 62, 69, 39
+1936, 6, 107, 101, 73
+1936, 7, 102, 90, 47
+1936, 8, 88, 135, 47
+1936, 9, 62, 88, 32
+1936, 10, 96, 102, 19
+1936, 11, 72, 59, 51
+1936, 12, 56, 66, 45
+1937, 1, 50, 80, 23
+1937, 2, 56, 86, 39
+1937, 3, 30, 79, 16
+1937, 4, 69, 100, 19
+1937, 5, 99, 114, 22
+1937, 6, 128, 92, 33
+1937, 7, 128, 98, 44
+1937, 8, 92, 133, 56
+1937, 9, 67, 89, 17
+1937, 10, 79, 89, 40
+1937, 11, 48, 58, 36
+1937, 12, 79, 96, 51
+1938, 1, 78, 85, 34
+1938, 2, 41, 67, 5
+1938, 3, 41, 57, 45
+1938, 4, 88, 113, 16
+1938, 5, 73, 78, 28
+1938, 6, 92, 100, 42
+1938, 7, 118, 124, 68
+1938, 8, 89, 105, 65
+1938, 9, 73, 110, 45
+1938, 10, 98, 81, 60
+1938, 11, 54, 85, 16
+1938, 12, 70, 65, 42
+1939, 1, 39, 64, 18
+1939, 2, 33, 92, 27
+1939, 3, 39, 100, 34
+1939, 4, 97, 101, 21
+1939, 5, 70, 84, 29
+1939, 6, 103, 126, 57
+1939, 7, 114, 102, 70
+1939, 8, 110, 105, 36
+1939, 9, 99, 79, 54
+1939, 10, 57, 88, 16
+1939, 11, 73, 59, 6
+1939, 12, 46, 78, 22
+1940, 1, 57, 77, 49
+1940, 2, 68, 80, 46
+1940, 3, 73, 100, 5
+1940, 4, 77, 66, 17
+1940, 5, 79, 111, 43
+1940, 6, 112, 125, 65
+1940, 7, 85, 111, 52
+1940, 8, 85, 96, 53
+1940, 9, 58, 75, 53
+1940, 10, 67, 82, 36
+1940, 11, 78, 89, 16
+1940, 12, 62, 104, 10
+1941, 1, 51, 61, 35
+1941, 2, 36, 88, 18
+1941, 3, 73, 65, 11
+1941, 4, 97, 68, 49
+1941, 5, 80, 110, 47
+1941, 6, 100, 112, 64
+1941, 7, 123, 104, 40
+1941, 8, 93, 99, 45
+1941, 9, 86, 99, 33
+1941, 10, 98, 76, 64
+1941, 11, 72, 101, 24
+1941, 12, 77, 78, 40
+1942, 1, 48, 98, 8
+1942, 2, 55, 69, 46
+1942, 3, 36, 77, 24
+1942, 4, 76, 111, 23
+1942, 5, 99, 85, 49
+1942, 6, 83, 125, 72
+1942, 7, 125, 97, 41
+1942, 8, 106, 98, 68
+1942, 9, 87, 105, 35
+1942, 10, 93, 73, 28
+1942, 11, 44, 71, 23
+1942, 12, 58, 92, 47
+1943, 1, 65, 72, 28
+1943, 2, 53, 74, 46
+1943, 3, 56, 76, 33
+1943, 4, 62, 94, 34
+1943, 5, 97, 109, 23
+1943, 6, 105, 95, 41
+1943, 7, 104, 128, 37
+1943, 8, 83, 117, 56
+1943, 9, 56, 97, 58
+1943, 10, 67, 99, 22
+1943, 11, 70, 68, 53
+1943, 12, 52, 89, 20
+1944, 1, 69, 83, 53
+1944, 2, 74, 57, 13
+1944, 3, 57, 67, 13
+1944, 4, 85, 103, 25
+1944, 5, 57, 113, 21
+1944, 6, 116, 102, 60
+1944, 7, 105, 92, 59
+1944, 8, 90, 125, 68
+1944, 9, 73, 93, 32
+1944, 10, 90, 84, 30
+1944, 11, 51, 83, 13
+1944, 12, 36, 82, 41
+1945, 1, 70, 82, 45
+1945, 2, 56, 82, 44
+1945, 3, 55, 103, 21
+1945, 4, 95, 93, 27
+1945, 5, 88, 86, 59
+1945, 6, 127, 98, 25
+1945, 7, 90, 112, 60
+1945, 8, 104, 132, 53
+1945, 9, 87, 96, 29
+1945, 10, 97, 81, 29
+1945, 11, 36, 82, 7
+1945, 12, 47, 72, 6
+1946, 1, 39, 65, 46
+1946, 2, 62, 74, 47
+1946, 3, 75, 83, 20
+1946, 4, 77, 107, 61
+1946, 5, 63, 110, 54
+1946, 6, 92, 131, 55
+1946, 7, 101, 111, 42
+1946, 8, 118, 118, 69
+1946, 9, 74, 109, 58
+1946, 10, 61, 67, 38
+1946, 11, 49, 94, 34
+1946, 12, 73, 81, 27
+1947, 1, 56, 72, 48
+1947, 2, 78, 97, 36
+1947, 3, 57, 102, 51
+1947, 4, 71, 92, 45
+1947, 5, 58, 81, 39
+1947, 6, 93, 136, 53
+1947, 7, 117, 132, 41
+1947, 8, 91, 104, 33
+1947, 9, 65, 95, 40
+1947, 10, 64, 87, 26
+1947, 11, 46, 87, 7
+1947, 12, 43, 78, 10
+1948, 1, 40, 79, 12
+1948, 2, 67, 63, 52
+1948, 3, 73, 66, 24
+1948, 4, 97, 86, 52
+1948, 5, 73, 105, 35
+1948, 6, 99, 129, 69
+1948, 7, 122, 109, 64
+1948, 8, 104, 134, 33
+1948, 9, 62, 79, 62
+1948, 10, 61, 71, 45
+1948, 11, 36, 91, 54
+1948, 12, 51, 95, 25
+1949, 1, 38, 73, 41
+1949, 2, 39, 76, 49
+1949, 3, 77, 84, 53
+1949, 4, 89, 69, 20
+1949, 5, 75, 114, 47
+1949, 6, 100, 117, 73
+1949, 7, 116, 105, 55
+1949, 8, 116, 95, 71
+1949, 9, 69, 98, 55
+1949, 10, 66, 111, 51
+1949, 11, 60, 77, 18
+1949, 12, 56, 97, 53
+1950, 1, 79, 82, 42
+1950, 2, 55, 71, 10
+1950, 3, 59, 104, 23
+1950, 4, 77, 107, 34
+1950, 5, 58, 72, 39
+1950, 6, 101, 139, 42
+1950, 7, 102, 135, 55
+1950, 8, 111, 133, 30
+1950, 9, 61, 89, 15
+1950, 10, 86, 113, 56
+1950, 11, 72, 63, 35
+1950, 12, 59, 80, 23
+1951, 1, 55, 80, 24
+1951, 2, 53, 83, 29
+1951, 3, 71, 68, 24
+1951, 4, 67, 98, 29
+1951, 5, 80, 91, 64
+1951, 6, 96, 108, 51
+1951, 7, 125, 103, 43
+1951, 8, 102, 124, 36
+1951, 9, 61, 77, 17
+1951, 10, 67, 77, 36
+1951, 11, 40, 90, 26
+1951, 12, 64, 69, 38
+1952, 1, 62, 86, 36
+1952, 2, 31, 74, 32
+1952, 3, 65, 70, 35
+1952, 4, 59, 99, 21
+1952, 5, 88, 82, 43
+1952, 6, 124, 94, 66
+1952, 7, 99, 90, 30
+1952, 8, 127, 107, 32
+1952, 9, 54, 74, 53
+1952, 10, 92, 80, 43
+1952, 11, 50, 59, 29
+1952, 12, 79, 87, 8
+1953, 1, 55, 94, 42
+1953, 2, 33, 77, 33
+1953, 3, 55, 70, 5
+1953, 4, 97, 87, 29
+1953, 5, 56, 88, 57
+1953, 6, 83, 116, 41
+1953, 7, 99, 126, 60
+1953, 8, 105, 99, 62
+1953, 9, 66, 79, 39
+1953, 10, 65, 91, 25
+1953, 11, 58, 62, 17
+1953, 12, 40, 78, 31
+1954, 1, 59, 59, 39
+1954, 2, 73, 92, 25
+1954, 3, 67, 86, 18
+1954, 4, 54, 99, 45
+1954, 5, 64, 68, 50
+1954, 6, 122, 102, 35
+1954, 7, 113, 134, 45
+1954, 8, 123, 102, 58
+1954, 9, 84, 102, 32
+1954, 10, 90, 110, 62
+1954, 11, 45, 103, 46
+1954, 12, 62, 96, 53
+1955, 1, 55, 74, 9
+1955, 2, 67, 97, 52
+1955, 3, 42, 62, 15
+1955, 4, 85, 75, 16
+1955, 5, 80, 102, 21
+1955, 6, 81, 103, 52
+1955, 7, 97, 99, 36
+1955, 8, 82, 91, 39
+1955, 9, 98, 95, 44
+1955, 10, 56, 70, 57
+1955, 11, 53, 74, 21
+1955, 12, 32, 100, 47
+1956, 1, 43, 102, 11
+1956, 2, 62, 104, 37
+1956, 3, 64, 64, 13
+1956, 4, 89, 72, 50
+1956, 5, 74, 75, 60
+1956, 6, 114, 95, 61
+1956, 7, 123, 99, 39
+1956, 8, 104, 110, 49
+1956, 9, 81, 87, 22
+1956, 10, 88, 78, 43
+1956, 11, 36, 69, 43
+1956, 12, 53, 88, 43
+1957, 1, 69, 66, 7
+1957, 2, 79, 80, 13
+1957, 3, 38, 98, 10
+1957, 4, 93, 108, 30
+1957, 5, 80, 95, 36
+1957, 6, 125, 124, 52
+1957, 7, 96, 100, 74
+1957, 8, 85, 91, 58
+1957, 9, 81, 93, 24
+1957, 10, 70, 71, 54
+1957, 11, 32, 66, 33
+1957, 12, 49, 75, 45
+1958, 1, 43, 89, 25
+1958, 2, 55, 86, 12
+1958, 3, 73, 84, 31
+1958, 4, 57, 99, 24
+1958, 5, 81, 81, 33
+1958, 6, 108, 118, 27
+1958, 7, 112, 114, 51
+1958, 8, 96, 136, 40
+1958, 9, 77, 105, 44
+1958, 10, 73, 90, 58
+1958, 11, 59, 93, 20
+1958, 12, 47, 73, 54
+1959, 1, 64, 68, 16
+1959, 2, 55, 95, 18
+1959, 3, 71, 64, 49
+1959, 4, 94, 71, 22
+1959, 5, 83, 67, 35
+1959, 6, 95, 130, 38
+1959, 7, 101, 130, 43
+1959, 8, 93, 95, 61
+1959, 9, 58, 100, 48
+1959, 10, 69, 94, 18
+1959, 11, 36, 77, 13
+1959, 12, 60, 81, 26
+1960, 1, 58, 83, 25
+1960, 2, 69, 85, 49
+1960, 3, 43, 57, 36
+1960, 4, 90, 72, 62
+1960, 5, 94, 102, 37
+1960, 6, 121, 128, 65
+1960, 7, 88, 133, 57
+1960, 8, 87, 127, 35
+1960, 9, 62, 79, 39
+1960, 10, 54, 113, 21
+1960, 11, 64, 60, 24
+1960, 12, 54, 68, 18
+1961, 1, 70, 93, 18
+1961, 2, 63, 72, 15
+1961, 3, 43, 102, 19
+1961, 4, 53, 87, 45
+1961, 5, 52, 66, 27
+1961, 6, 110, 100, 58
+1961, 7, 92, 133, 35
+1961, 8, 116, 98, 66
+1961, 9, 93, 82, 29
+1961, 10, 85, 96, 48
+1961, 11, 74, 88, 17
+1961, 12, 32, 77, 31
+1962, 1, 69, 59, 31
+1962, 2, 42, 90, 53
+1962, 3, 33, 79, 22
+1962, 4, 67, 75, 26
+1962, 5, 91, 114, 40
+1962, 6, 118, 134, 72
+1962, 7, 128, 118, 30
+1962, 8, 84, 115, 27
+1962, 9, 75, 82, 38
+1962, 10, 52, 76, 48
+1962, 11, 45, 96, 29
+1962, 12, 71, 103, 15
+1963, 1, 75, 84, 7
+1963, 2, 42, 70, 10
+1963, 3, 36, 66, 41
+1963, 4, 51, 110, 45
+1963, 5, 59, 88, 42
+1963, 6, 118, 126, 41
+1963, 7, 123, 114, 61
+1963, 8, 96, 111, 66
+1963, 9, 91, 109, 30
+1963, 10, 93, 66, 15
+1963, 11, 62, 64, 49
+1963, 12, 68, 91, 22
+1964, 1, 43, 101, 12
+1964, 2, 33, 83, 20
+1964, 3, 36, 100, 12
+1964, 4, 81, 93, 55
+1964, 5, 81, 110, 42
+1964, 6, 93, 127, 37
+1964, 7, 122, 103, 74
+1964, 8, 118, 90, 58
+1964, 9, 76, 71, 57
+1964, 10, 84, 103, 36
+1964, 11, 51, 88, 14
+1964, 12, 56, 88, 22
+1965, 1, 38, 80, 28
+1965, 2, 73, 102, 25
+1965, 3, 67, 81, 13
+1965, 4, 84, 67, 40
+1965, 5, 93, 104, 54
+1965, 6, 92, 127, 58
+1965, 7, 123, 90, 40
+1965, 8, 91, 121, 70
+1965, 9, 55, 111, 54
+1965, 10, 54, 104, 16
+1965, 11, 71, 56, 13
+1965, 12, 45, 100, 44
+1966, 1, 41, 86, 42
+1966, 2, 70, 95, 35
+1966, 3, 37, 89, 16
+1966, 4, 50, 101, 55
+1966, 5, 81, 91, 31
+1966, 6, 111, 91, 72
+1966, 7, 110, 92, 59
+1966, 8, 91, 92, 57
+1966, 9, 60, 80, 60
+1966, 10, 70, 80, 41
+1966, 11, 48, 72, 13
+1966, 12, 48, 95, 37
+1967, 1, 74, 68, 16
+1967, 2, 61, 77, 21
+1967, 3, 62, 103, 20
+1967, 4, 72, 72, 22
+1967, 5, 81, 89, 32
+1967, 6, 88, 122, 67
+1967, 7, 90, 125, 50
+1967, 8, 88, 125, 57
+1967, 9, 59, 94, 20
+1967, 10, 94, 83, 27
+1967, 11, 74, 71, 46
+1967, 12, 72, 93, 50
+1968, 1, 58, 104, 50
+1968, 2, 37, 103, 10
+1968, 3, 68, 94, 10
+1968, 4, 94, 75, 44
+1968, 5, 55, 77, 37
+1968, 6, 85, 111, 61
+1968, 7, 87, 99, 53
+1968, 8, 87, 126, 39
+1968, 9, 64, 104, 44
+1968, 10, 64, 93, 49
+1968, 11, 37, 64, 11
+1968, 12, 40, 63, 19
+1969, 1, 56, 78, 48
+1969, 2, 56, 70, 12
+1969, 3, 32, 75, 11
+1969, 4, 52, 65, 29
+1969, 5, 67, 76, 44
+1969, 6, 107, 119, 61
+1969, 7, 115, 91, 50
+1969, 8, 85, 129, 59
+1969, 9, 60, 100, 19
+1969, 10, 93, 108, 31
+1969, 11, 67, 64, 12
+1969, 12, 47, 81, 44
+1970, 1, 42, 96, 23
+1970, 2, 73, 94, 10
+1970, 3, 34, 79, 54
+1970, 4, 59, 81, 16
+1970, 5, 99, 103, 48
+1970, 6, 82, 108, 51
+1970, 7, 99, 108, 39
+1970, 8, 99, 117, 26
+1970, 9, 96, 98, 44
+1970, 10, 92, 86, 19
+1970, 11, 33, 55, 5
+1970, 12, 78, 95, 29
+1971, 1, 56, 66, 15
+1971, 2, 67, 86, 5
+1971, 3, 77, 85, 17
+1971, 4, 64, 99, 48
+1971, 5, 74, 76, 26
+1971, 6, 94, 134, 32
+1971, 7, 110, 114, 43
+1971, 8, 84, 120, 58
+1971, 9, 85, 100, 21
+1971, 10, 87, 77, 61
+1971, 11, 69, 83, 36
+1971, 12, 51, 61, 9
+1972, 1, 62, 104, 9
+1972, 2, 32, 73, 28
+1972, 3, 77, 84, 46
+1972, 4, 82, 71, 36
+1972, 5, 55, 79, 40
+1972, 6, 124, 118, 74
+1972, 7, 85, 124, 39
+1972, 8, 112, 128, 68
+1972, 9, 51, 95, 24
+1972, 10, 73, 87, 26
+1972, 11, 66, 65, 51
+1972, 12, 65, 85, 10
+1973, 1, 68, 62, 51
+1973, 2, 78, 101, 46
+1973, 3, 43, 97, 5
+1973, 4, 81, 95, 52
+1973, 5, 77, 84, 45
+1973, 6, 103, 131, 42
+1973, 7, 105, 92, 55
+1973, 8, 121, 130, 56
+1973, 9, 82, 104, 35
+1973, 10, 98, 107, 58
+1973, 11, 67, 104, 43
+1973, 12, 63, 91, 51
+1974, 1, 65, 104, 25
+1974, 2, 62, 73, 15
+1974, 3, 69, 97, 42
+1974, 4, 89, 113, 39
+1974, 5, 75, 71, 63
+1974, 6, 112, 108, 51
+1974, 7, 116, 99, 52
+1974, 8, 87, 120, 55
+1974, 9, 77, 72, 16
+1974, 10, 97, 86, 27
+1974, 11, 33, 57, 5
+1974, 12, 43, 88, 40
+1975, 1, 54, 59, 53
+1975, 2, 75, 88, 52
+1975, 3, 50, 59, 21
+1975, 4, 55, 87, 53
+1975, 5, 91, 82, 52
+1975, 6, 96, 125, 51
+1975, 7, 116, 110, 25
+1975, 8, 117, 120, 71
+1975, 9, 98, 85, 36
+1975, 10, 82, 101, 32
+1975, 11, 70, 100, 28
+1975, 12, 32, 92, 24
+1976, 1, 33, 85, 42
+1976, 2, 40, 91, 11
+1976, 3, 69, 99, 5
+1976, 4, 68, 76, 33
+1976, 5, 56, 87, 40
+1976, 6, 113, 110, 67
+1976, 7, 80, 108, 63
+1976, 8, 88, 94, 29
+1976, 9, 84, 73, 26
+1976, 10, 95, 75, 45
+1976, 11, 79, 65, 31
+1976, 12, 75, 59, 37
+1977, 1, 30, 96, 48
+1977, 2, 60, 56, 23
+1977, 3, 60, 104, 50
+1977, 4, 77, 112, 57
+1977, 5, 81, 84, 31
+1977, 6, 129, 108, 64
+1977, 7, 88, 96, 59
+1977, 8, 123, 121, 45
+1977, 9, 89, 82, 41
+1977, 10, 62, 81, 17
+1977, 11, 77, 65, 19
+1977, 12, 48, 82, 14
+1978, 1, 57, 67, 49
+1978, 2, 41, 60, 47
+1978, 3, 33, 77, 43
+1978, 4, 83, 99, 30
+1978, 5, 69, 70, 45
+1978, 6, 107, 130, 49
+1978, 7, 98, 117, 44
+1978, 8, 105, 116, 53
+1978, 9, 66, 99, 18
+1978, 10, 69, 86, 28
+1978, 11, 44, 103, 23
+1978, 12, 70, 95, 15
+1979, 1, 33, 63, 15
+1979, 2, 59, 92, 9
+1979, 3, 39, 64, 7
+1979, 4, 59, 103, 61
+1979, 5, 61, 80, 36
+1979, 6, 99, 124, 70
+1979, 7, 121, 134, 50
+1979, 8, 82, 132, 30
+1979, 9, 76, 106, 61
+1979, 10, 69, 82, 56
+1979, 11, 42, 78, 27
+1979, 12, 39, 71, 32
+1980, 1, 60, 91, 33
+1980, 2, 79, 84, 21
+1980, 3, 41, 66, 35
+1980, 4, 93, 89, 60
+1980, 5, 93, 109, 58
+1980, 6, 96, 139, 41
+1980, 7, 114, 94, 45
+1980, 8, 127, 136, 71
+1980, 9, 99, 75, 62
+1980, 10, 97, 97, 45
+1980, 11, 47, 89, 31
+1980, 12, 73, 80, 22
+1981, 1, 69, 89, 52
+1981, 2, 34, 96, 14
+1981, 3, 38, 91, 33
+1981, 4, 82, 85, 34
+1981, 5, 83, 91, 46
+1981, 6, 95, 128, 31
+1981, 7, 98, 95, 63
+1981, 8, 90, 96, 71
+1981, 9, 57, 93, 27
+1981, 10, 52, 91, 28
+1981, 11, 50, 89, 16
+1981, 12, 65, 66, 35
+1982, 1, 49, 69, 24
+1982, 2, 53, 99, 7
+1982, 3, 74, 55, 18
+1982, 4, 81, 82, 27
+1982, 5, 55, 101, 29
+1982, 6, 107, 109, 48
+1982, 7, 117, 114, 61
+1982, 8, 105, 117, 46
+1982, 9, 51, 83, 44
+1982, 10, 74, 97, 17
+1982, 11, 75, 100, 11
+1982, 12, 45, 76, 16
+1983, 1, 52, 91, 5
+1983, 2, 74, 75, 27
+1983, 3, 56, 92, 23
+1983, 4, 97, 89, 59
+1983, 5, 68, 66, 17
+1983, 6, 83, 99, 28
+1983, 7, 119, 105, 29
+1983, 8, 120, 108, 39
+1983, 9, 97, 91, 26
+1983, 10, 75, 97, 15
+1983, 11, 55, 63, 21
+1983, 12, 65, 63, 54
+1984, 1, 68, 73, 11
+1984, 2, 65, 56, 23
+1984, 3, 44, 81, 7
+1984, 4, 55, 111, 55
+1984, 5, 75, 106, 59
+1984, 6, 92, 95, 74
+1984, 7, 115, 92, 62
+1984, 8, 112, 92, 26
+1984, 9, 99, 102, 40
+1984, 10, 58, 86, 51
+1984, 11, 66, 76, 13
+1984, 12, 63, 92, 27
+1985, 1, 63, 69, 39
+1985, 2, 60, 64, 43
+1985, 3, 73, 71, 28
+1985, 4, 76, 98, 45
+1985, 5, 80, 86, 61
+1985, 6, 116, 103, 60
+1985, 7, 122, 127, 41
+1985, 8, 115, 118, 48
+1985, 9, 53, 110, 47
+1985, 10, 70, 114, 44
+1985, 11, 66, 104, 6
+1985, 12, 32, 92, 37
+1986, 1, 68, 72, 25
+1986, 2, 73, 91, 48
+1986, 3, 76, 59, 9
+1986, 4, 69, 93, 36
+1986, 5, 90, 94, 39
+1986, 6, 101, 91, 42
+1986, 7, 110, 126, 32
+1986, 8, 87, 136, 33
+1986, 9, 65, 107, 60
+1986, 10, 88, 65, 54
+1986, 11, 65, 96, 49
+1986, 12, 34, 58, 46
+1987, 1, 63, 90, 30
+1987, 2, 33, 74, 25
+1987, 3, 75, 84, 46
+1987, 4, 86, 67, 21
+1987, 5, 63, 98, 17
+1987, 6, 81, 105, 58
+1987, 7, 106, 120, 64
+1987, 8, 85, 99, 36
+1987, 9, 97, 94, 24
+1987, 10, 61, 67, 53
+1987, 11, 77, 85, 15
+1987, 12, 72, 79, 41
+1988, 1, 72, 66, 44
+1988, 2, 65, 85, 16
+1988, 3, 31, 90, 41
+1988, 4, 78, 99, 37
+1988, 5, 68, 106, 51
+1988, 6, 88, 113, 35
+1988, 7, 121, 105, 42
+1988, 8, 84, 132, 65
+1988, 9, 69, 100, 41
+1988, 10, 83, 101, 15
+1988, 11, 30, 86, 37
+1988, 12, 72, 75, 26
+1989, 1, 74, 100, 10
+1989, 2, 69, 94, 48
+1989, 3, 46, 65, 34
+1989, 4, 50, 85, 59
+1989, 5, 82, 112, 62
+1989, 6, 126, 119, 50
+1989, 7, 124, 125, 43
+1989, 8, 108, 100, 73
+1989, 9, 87, 103, 52
+1989, 10, 86, 69, 40
+1989, 11, 78, 56, 33
+1989, 12, 78, 77, 53
+1990, 1, 67, 65, 7
+1990, 2, 40, 60, 38
+1990, 3, 55, 83, 7
+1990, 4, 50, 70, 54
+1990, 5, 71, 108, 24
+1990, 6, 84, 126, 27
+1990, 7, 117, 109, 71
+1990, 8, 109, 96, 25
+1990, 9, 83, 96, 44
+1990, 10, 92, 114, 38
+1990, 11, 62, 65, 24
+1990, 12, 76, 65, 25
+1991, 1, 37, 69, 48
+1991, 2, 35, 63, 17
+1991, 3, 66, 69, 13
+1991, 4, 78, 80, 39
+1991, 5, 95, 78, 25
+1991, 6, 127, 113, 68
+1991, 7, 88, 102, 40
+1991, 8, 125, 95, 61
+1991, 9, 54, 96, 40
+1991, 10, 85, 109, 53
+1991, 11, 75, 65, 10
+1991, 12, 72, 90, 44
+1992, 1, 33, 64, 52
+1992, 2, 39, 81, 43
+1992, 3, 68, 82, 15
+1992, 4, 72, 94, 32
+1992, 5, 97, 76, 58
+1992, 6, 125, 111, 55
+1992, 7, 127, 129, 29
+1992, 8, 128, 122, 52
+1992, 9, 81, 105, 38
+1992, 10, 99, 107, 42
+1992, 11, 54, 101, 47
+1992, 12, 35, 81, 42
+1993, 1, 53, 69, 40
+1993, 2, 77, 75, 44
+1993, 3, 59, 94, 46
+1993, 4, 90, 110, 40
+1993, 5, 95, 105, 24
+1993, 6, 126, 102, 68
+1993, 7, 98, 139, 66
+1993, 8, 113, 117, 74
+1993, 9, 87, 109, 33
+1993, 10, 96, 73, 63
+1993, 11, 42, 97, 21
+1993, 12, 36, 85, 10
+1994, 1, 36, 88, 31
+1994, 2, 67, 74, 21
+1994, 3, 40, 87, 13
+1994, 4, 95, 109, 37
+1994, 5, 56, 79, 64
+1994, 6, 127, 96, 32
+1994, 7, 87, 108, 70
+1994, 8, 106, 131, 70
+1994, 9, 58, 78, 20
+1994, 10, 58, 67, 23
+1994, 11, 75, 96, 42
+1994, 12, 31, 92, 30
+1995, 1, 62, 95, 27
+1995, 2, 30, 89, 48
+1995, 3, 71, 91, 46
+1995, 4, 56, 105, 20
+1995, 5, 83, 66, 25
+1995, 6, 84, 90, 42
+1995, 7, 128, 128, 30
+1995, 8, 97, 117, 29
+1995, 9, 93, 93, 50
+1995, 10, 83, 89, 50
+1995, 11, 70, 72, 47
+1995, 12, 33, 96, 34
+1996, 1, 38, 93, 19
+1996, 2, 69, 103, 41
+1996, 3, 31, 82, 25
+1996, 4, 96, 67, 41
+1996, 5, 76, 91, 21
+1996, 6, 98, 109, 66
+1996, 7, 90, 110, 42
+1996, 8, 97, 128, 67
+1996, 9, 70, 73, 32
+1996, 10, 65, 65, 58
+1996, 11, 45, 84, 26
+1996, 12, 48, 72, 29
+1997, 1, 42, 77, 17
+1997, 2, 48, 62, 23
+1997, 3, 57, 74, 40
+1997, 4, 69, 106, 51
+1997, 5, 77, 108, 19
+1997, 6, 126, 95, 63
+1997, 7, 121, 110, 56
+1997, 8, 129, 119, 70
+1997, 9, 66, 74, 52
+1997, 10, 72, 68, 64
+1997, 11, 77, 89, 17
+1997, 12, 37, 88, 10
+1998, 1, 49, 93, 35
+1998, 2, 55, 84, 18
+1998, 3, 64, 81, 21
+1998, 4, 75, 106, 44
+1998, 5, 97, 80, 60
+1998, 6, 83, 132, 29
+1998, 7, 99, 119, 62
+1998, 8, 92, 139, 63
+1998, 9, 77, 68, 16
+1998, 10, 66, 78, 29
+1998, 11, 38, 75, 36
+1998, 12, 70, 94, 9
+1999, 1, 69, 66, 42
+1999, 2, 76, 98, 43
+1999, 3, 34, 88, 43
+1999, 4, 69, 97, 29
+1999, 5, 57, 93, 48
+1999, 6, 127, 112, 49
+1999, 7, 125, 133, 46
+1999, 8, 116, 137, 62
+1999, 9, 74, 88, 27
+1999, 10, 93, 82, 64
+1999, 11, 75, 75, 38
+1999, 12, 51, 55, 6
+2000, 1, 55, 94, 42
+2000, 2, 41, 85, 16
+2000, 3, 51, 81, 49
+2000, 4, 86, 93, 26
+2000, 5, 98, 92, 46
+2000, 6, 86, 130, 38
+2000, 7, 108, 107, 37
+2000, 8, 112, 123, 53
+2000, 9, 93, 105, 39
+2000, 10, 54, 67, 51
+2000, 11, 69, 60, 40
+2000, 12, 64, 92, 38
+2001, 1, 35, 58, 15
+2001, 2, 69, 57, 11
+2001, 3, 60, 81, 45
+2001, 4, 68, 98, 27
+2001, 5, 78, 110, 21
+2001, 6, 124, 124, 72
+2001, 7, 94, 102, 45
+2001, 8, 124, 93, 69
+2001, 9, 62, 84, 33
+2001, 10, 56, 71, 35
+2001, 11, 63, 96, 34
+2001, 12, 76, 101, 38
+2002, 1, 46, 83, 34
+2002, 2, 57, 97, 25
+2002, 3, 33, 59, 23
+2002, 4, 67, 76, 61
+2002, 5, 52, 66, 43
+2002, 6, 103, 120, 66
+2002, 7, 96, 118, 48
+2002, 8, 84, 107, 28
+2002, 9, 74, 91, 30
+2002, 10, 62, 109, 21
+2002, 11, 73, 99, 39
+2002, 12, 49, 84, 11
+2003, 1, 51, 55, 54
+2003, 2, 74, 58, 18
+2003, 3, 45, 55, 24
+2003, 4, 56, 108, 52
+2003, 5, 94, 84, 38
+2003, 6, 113, 136, 50
+2003, 7, 112, 94, 43
+2003, 8, 120, 121, 69
+2003, 9, 99, 75, 28
+2003, 10, 60, 65, 25
+2003, 11, 50, 96, 10
+2003, 12, 35, 79, 33
+2004, 1, 44, 84, 53
+2004, 2, 38, 87, 7
+2004, 3, 77, 58, 16
+2004, 4, 84, 91, 17
+2004, 5, 72, 107, 59
+2004, 6, 108, 98, 70
+2004, 7, 97, 92, 26
+2004, 8, 109, 106, 30
+2004, 9, 99, 71, 53
+2004, 10, 95, 108, 22
+2004, 11, 42, 80, 47
+2004, 12, 32, 69, 23
+2005, 1, 72, 98, 13
+2005, 2, 54, 55, 31
+2005, 3, 43, 76, 34
+2005, 4, 92, 90, 40
+2005, 5, 55, 67, 32
+2005, 6, 124, 105, 70
+2005, 7, 126, 115, 30
+2005, 8, 106, 109, 59
+2005, 9, 79, 75, 31
+2005, 10, 86, 100, 16
+2005, 11, 69, 93, 49
+2005, 12, 56, 101, 41
+2006, 1, 70, 78, 6
+2006, 2, 52, 90, 14
+2006, 3, 50, 58, 14
+2006, 4, 85, 101, 21
+2006, 5, 79, 84, 28
+2006, 6, 112, 121, 41
+2006, 7, 97, 104, 33
+2006, 8, 109, 109, 47
+2006, 9, 62, 70, 24
+2006, 10, 60, 99, 58
+2006, 11, 74, 86, 53
+2006, 12, 74, 81, 49
+2007, 1, 49, 74, 9
+2007, 2, 45, 64, 50
+2007, 3, 59, 72, 9
+2007, 4, 74, 90, 63
+2007, 5, 86, 99, 62
+2007, 6, 84, 127, 44
+2007, 7, 101, 97, 26
+2007, 8, 82, 105, 70
+2007, 9, 88, 91, 30
+2007, 10, 53, 84, 51
+2007, 11, 67, 102, 20
+2007, 12, 61, 56, 20
+2008, 1, 38, 66, 5
+2008, 2, 35, 100, 49
+2008, 3, 69, 62, 18
+2008, 4, 69, 90, 17
+2008, 5, 78, 101, 53
+2008, 6, 99, 129, 53
+2008, 7, 89, 112, 64
+2008, 8, 91, 117, 41
+2008, 9, 69, 71, 15
+2008, 10, 73, 95, 41
+2008, 11, 31, 96, 13
+2008, 12, 37, 91, 43
+2009, 1, 55, 78, 48
+2009, 2, 64, 56, 21
+2009, 3, 46, 89, 7
+2009, 4, 61, 81, 27
+2009, 5, 70, 112, 58
+2009, 6, 124, 97, 30
+2009, 7, 91, 92, 46
+2009, 8, 122, 104, 47
+2009, 9, 79, 83, 40
+2009, 10, 68, 73, 16
+2009, 11, 51, 89, 52
+2009, 12, 32, 82, 9
+2010, 1, 39, 56, 8
+2010, 2, 63, 56, 41
+2010, 3, 65, 57, 46
+2010, 4, 98, 84, 32
+2010, 5, 71, 96, 58
+2010, 6, 113, 130, 51
+2010, 7, 105, 115, 28
+2010, 8, 93, 100, 36
+2010, 9, 76, 107, 54
+2010, 10, 64, 84, 31
+2010, 11, 73, 88, 29
+2010, 12, 43, 86, 8
+2011, 1, 76, 55, 29
+2011, 2, 77, 100, 23
+2011, 3, 33, 66, 5
+2011, 4, 52, 102, 48
+2011, 5, 97, 82, 44
+2011, 6, 117, 105, 71
+2011, 7, 92, 127, 50
+2011, 8, 83, 132, 48
+2011, 9, 54, 109, 60
+2011, 10, 53, 68, 48
+2011, 11, 75, 102, 32
+2011, 12, 30, 98, 26
+2012, 1, 44, 79, 34
+2012, 2, 69, 62, 33
+2012, 3, 67, 65, 10
+2012, 4, 70, 70, 49
+2012, 5, 50, 98, 61
+2012, 6, 92, 97, 64
+2012, 7, 91, 95, 51
+2012, 8, 107, 107, 26
+2012, 9, 64, 102, 22
+2012, 10, 75, 76, 31
+2012, 11, 66, 75, 6
+2012, 12, 33, 100, 36
diff --git a/examples/rainfall/main.cpp b/examples/rainfall/main.cpp
index 6c43f2a0..090b7a1a 100644
--- a/examples/rainfall/main.cpp
+++ b/examples/rainfall/main.cpp
@@ -38,138 +38,11 @@
**
****************************************************************************/
-#include "q3dbars.h"
-#include "qcategoryaxis.h"
-#include "qvariantbardataproxy.h"
-
+#include "rainfallchart.h"
#include <QGuiApplication>
-#include <QFont>
-#include <QDebug>
-#include <QTextStream>
-#include <QFile>
using namespace QtDataVis3D;
-class RainfallChart : public QObject
-{
-public:
- explicit RainfallChart(Q3DBars *rainfall);
- ~RainfallChart();
-
- void addDataSet();
- void start();
-
-private:
- Q3DBars *m_chart;
- int m_columnCount;
- int m_rowCount;
- QStringList m_years;
-};
-
-RainfallChart::RainfallChart(Q3DBars *rainfall)
- : m_chart(rainfall),
- m_columnCount(12),
- m_rowCount(13)
-{
- // Set up bar specifications; make the bars as wide as they are deep,
- // and add a small space between the bars
- m_chart->setBarSpecs(QSizeF(1.0f, 1.0f), QSizeF(0.2f, 0.2f), true);
-
- // Set up sample space; make it match actual data size
- m_chart->setupSampleSpace(m_rowCount, m_columnCount);
-
- // Set axis labels and titles
- QStringList months;
- months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December";
- m_years << "2000" << "2001" << "2002" << "2003" << "2004" << "2005" << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012";
-
- m_chart->rowAxis()->setTitle("Year");
- m_chart->columnAxis()->setTitle("Month");
- m_chart->valueAxis()->setTitle("rainfall (in mm)");
- m_chart->rowAxis()->setLabels(m_years);
- m_chart->columnAxis()->setLabels(months);
-
- // Set bar type to cylinder
- m_chart->setBarType(Cylinders, false);
-
- // Set shadows to medium
- m_chart->setShadowQuality(ShadowMedium);
-
- // Set font
- m_chart->setFont(QFont("Century Gothic", 40));
-
- // Set selection mode to bar and column
- //m_chart->setSelectionMode(ModeBarAndColumn);
- m_chart->setSelectionMode(ModeZoomColumn);
-
- // Set theme
- m_chart->setTheme(ThemeBlueNcs);
-
- // Set preset camera position
- m_chart->setCameraPreset(PresetIsometricRightHigh);
-
- // Disable grid
- m_chart->setGridVisible(false);
-
- // Set window title
- m_chart->setWindowTitle(QStringLiteral("Monthly rainfall in Northern Finland (2000-2012)"));
-
- QVariantBarDataProxy *proxy = new QVariantBarDataProxy;
- m_chart->setDataProxy(proxy);
-}
-
-RainfallChart::~RainfallChart()
-{
- delete m_chart;
-}
-
-void RainfallChart::start()
-{
- addDataSet();
-}
-
-void RainfallChart::addDataSet()
-{
- QVariantDataSet *dataSet = new QVariantDataSet;
- QVariantDataItemList *itemList = new QVariantDataItemList;
- QTextStream stream;
- QFile dataFile(":/data/raindata.txt");
- if (dataFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
- stream.setDevice(&dataFile);
- while (!stream.atEnd()) {
- QString line = stream.readLine();
- if (line.startsWith("#"))
- continue;
- QStringList strList = line.split(",", QString::SkipEmptyParts);
- if (strList.size() < 3) {
- qWarning() << "Invalid row read from data:" << line;
- continue;
- }
- QVariantDataItem *newItem = new QVariantDataItem;
- for (int i = 0; i < 3; i++)
- newItem->append(strList.at(i));
- itemList->append(newItem);
- }
- } else {
- qWarning() << "Unable to open data file:" << dataFile.fileName();
- }
-
- dataSet->addItems(itemList);
-
- static_cast<QVariantBarDataProxy *>(m_chart->dataProxy())->setDataSet(dataSet);
-
- // In data file the months are in numeric format, so create custom list
- QStringList numericMonths;
- for (int i = 1; i <= 12; i++)
- numericMonths << QString::number(i);
-
- QVariantBarMapping mappings;
- mappings[QVariantBarMappingItem::MapRow] = QVariantBarMappingItem(0, m_years);
- mappings[QVariantBarMappingItem::MapColumn] = QVariantBarMappingItem(1, numericMonths);
- mappings[QVariantBarMappingItem::MapValue] = QVariantBarMappingItem(2);
- static_cast<QVariantBarDataProxy *>(m_chart->dataProxy())->setMappings(mappings);
-}
-
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
diff --git a/examples/rainfall/rainfall.pro b/examples/rainfall/rainfall.pro
index f81793ee..bac4553a 100644
--- a/examples/rainfall/rainfall.pro
+++ b/examples/rainfall/rainfall.pro
@@ -2,7 +2,11 @@
error( "Couldn't find the examples.pri file!" )
}
-SOURCES += main.cpp
+SOURCES += main.cpp \
+ rainfallchart.cpp
+
+HEADERS += \
+ rainfallchart.h
INSTALLS += target
@@ -10,3 +14,4 @@ RESOURCES += \
rainfall.qrc
OTHER_FILES += data/raindata.txt
+
diff --git a/examples/rainfall/rainfallchart.cpp b/examples/rainfall/rainfallchart.cpp
new file mode 100644
index 00000000..8564c91c
--- /dev/null
+++ b/examples/rainfall/rainfallchart.cpp
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "rainfallchart.h"
+#include "qcategoryaxis.h"
+#include <QGuiApplication>
+#include <QFont>
+#include <QDebug>
+#include <QTextStream>
+#include <QFile>
+
+#define CHANGE_CITY_WITH_TIMER
+
+using namespace QtDataVis3D;
+
+RainfallChart::RainfallChart(Q3DBars *rainfall)
+ : m_chart(rainfall),
+ m_city(2)
+{
+ // In data file the months are in numeric format, so create custom list
+ for (int i = 1; i <= 12; i++)
+ m_numericMonths << QString::number(i);
+
+ m_columnCount = m_numericMonths.size();
+
+ m_proxy = new QVariantBarDataProxy;
+ m_proxy->setItemLabelFormat(QStringLiteral(" mm"));
+ m_chart->setDataProxy(m_proxy);
+
+ updateYearsList(2000, 2012);
+
+ // Set up bar specifications; make the bars as wide as they are deep,
+ // and add a small space between the bars
+ m_chart->setBarSpecs(QSizeF(1.0f, 1.0f), QSizeF(0.2f, 0.2f), true);
+
+ // Set axis labels and titles
+ QStringList months;
+ months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December";
+ m_chart->rowAxis()->setTitle("Year");
+ m_chart->columnAxis()->setTitle("Month");
+ m_chart->valueAxis()->setTitle(QString("rainfall (in mm) in city %1").arg(m_city - 1));
+ m_chart->rowAxis()->setLabels(m_years);
+ m_chart->columnAxis()->setLabels(months);
+
+ // Set bar type to cylinder
+ m_chart->setBarType(Cylinders, false);
+
+ // Set shadows to medium
+ m_chart->setShadowQuality(ShadowMedium);
+
+ // Set font
+ m_chart->setFont(QFont("Century Gothic", 40));
+
+ // Set selection mode to bar and column
+ //m_chart->setSelectionMode(ModeBarAndColumn);
+ m_chart->setSelectionMode(ModeZoomColumn);
+
+ // Set theme
+ m_chart->setTheme(ThemeBlueNcs);
+
+ // Set preset camera position
+ m_chart->setCameraPreset(PresetIsometricRightHigh);
+
+ // Disable grid
+ m_chart->setGridVisible(false);
+
+ // Set window title
+ m_chart->setWindowTitle(QStringLiteral("Monthly rainfall in various cities"));
+}
+
+RainfallChart::~RainfallChart()
+{
+ delete m_chart;
+}
+
+void RainfallChart::start()
+{
+ addDataSet();
+
+#ifdef CHANGE_CITY_WITH_TIMER
+ connect(&m_timer, &QTimer::timeout, this, &RainfallChart::timeout);
+ m_timer.start(3000);
+#endif
+}
+
+void RainfallChart::timeout()
+{
+ if (++m_city > 4)
+ m_city = 2;
+
+ m_proxy->mapping()->setValueIndex(m_city);
+ m_chart->valueAxis()->setTitle(QString("rainfall (in mm) in city %1").arg(m_city - 1));
+}
+
+void RainfallChart::updateYearsList(int start, int end)
+{
+ m_years.clear();
+ for (int i = start; i <= end; i++)
+ m_years << QString::number(i);
+
+ m_rowCount = m_years.size();
+
+ // Set up sample space; make it match actual resolved data size
+ m_chart->setupSampleSpace(m_rowCount, m_columnCount);
+}
+
+void RainfallChart::addDataSet()
+{
+ QVariantDataSet *dataSet = new QVariantDataSet;
+ QVariantDataItemList *itemList = new QVariantDataItemList;
+ QTextStream stream;
+ QFile dataFile(":/data/raindata.txt");
+ if (dataFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ stream.setDevice(&dataFile);
+ while (!stream.atEnd()) {
+ QString line = stream.readLine();
+ if (line.startsWith("#"))
+ continue;
+ QStringList strList = line.split(",", QString::SkipEmptyParts);
+ if (strList.size() < 5) {
+ qWarning() << "Invalid row read from data:" << line;
+ continue;
+ }
+ QVariantDataItem *newItem = new QVariantDataItem;
+ for (int i = 0; i < 2; i++)
+ newItem->append(strList.at(i).trimmed());
+ for (int i = 2; i < 5; i++)
+ newItem->append(strList.at(i).trimmed().toDouble());
+ itemList->append(newItem);
+ }
+ } else {
+ qWarning() << "Unable to open data file:" << dataFile.fileName();
+ }
+
+ dataSet->addItems(itemList);
+
+ m_proxy->setDataSet(dataSet);
+
+ QVariantBarDataMapping *mapping = new QVariantBarDataMapping(0, 1, m_city, m_years, m_numericMonths);
+ m_proxy->setMapping(mapping);
+}
diff --git a/examples/rainfall/rainfallchart.h b/examples/rainfall/rainfallchart.h
new file mode 100644
index 00000000..2219558d
--- /dev/null
+++ b/examples/rainfall/rainfallchart.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef RAINFALLCHART_H
+#define RAINFALLCHART_H
+
+#include "q3dbars.h"
+#include "qvariantbardataproxy.h"
+#include <QTimer>
+
+using namespace QtDataVis3D;
+
+class RainfallChart : public QObject
+{
+ Q_OBJECT
+public:
+ explicit RainfallChart(Q3DBars *rainfall);
+ ~RainfallChart();
+
+ void addDataSet();
+ void start();
+
+public slots:
+ void timeout();
+private:
+
+ void updateYearsList(int start, int end);
+ Q3DBars *m_chart;
+ int m_columnCount;
+ int m_rowCount;
+ QStringList m_years;
+ QStringList m_numericMonths;
+ QTimer m_timer;
+ QVariantBarDataProxy *m_proxy;
+ int m_city;
+};
+
+
+#endif // RAINFALLCHART_H