Android LineGraph меняет цвет линий

Я пытаюсь создать linegraph которые будут иметь разные цветные линии или промежутки между некоторыми точками (не имеет значения, какая из них) на Android, с помощью Android Studio, я использую Graph View и его метод LineGraphSeries чтобы создать полный линейный график в данный момент, и результат, который я получаю, таков, но его можно прокручивать по горизонтали.

Это выглядит странно, так как некоторые пункты выше, начиная с 23000, которые я хотел бы игнорировать. Как видно на рисунке, линия идет вверх, а затем возвращается к нормальным значениям. Вместо этого может быть пустой пробел или цвет другого цвета.

Вот краткая версия данных, которые я читаю и рисую. Что в основном 60 секунд song's vocal track, right число является voice's pitch и left number когда pitch это было услышано (отделено ":"). Время, когда голос слышен, является X axis и поле Y axis,

0,14:23281,61
0,23:53,65
0,37:72,53
0,56:86,09
0,60:88,58
0,65:87,45
0,70:87,11
0,74:89,56
0,79:96,22
0,84:23288,24
0,88:103,92
0,93:107,46
0,98:108,02
1,02:107,51
1,07:104,92
1,11:105,94
1,16:106,40
1,21:104,43
1,25:104,93
1,30:108,01
1,35:316,81
1,39:103,98
1,44:23297,42
1,49:23357,42
1,53:23359,74
1,58:23393,04
1,63:23244,18
1,67:23220,51
1,72:23250,06
1,76:23288,84
1,81:23241,81
1,86:23295,22
1,90:23268,04
1,95:23252,78
2,00:23224,22
2,04:23429,71
2,09:23214,58
2,14:23240,70
2,18:23237,71
2,23:23231,22
2,28:23222,77
2,32:23239,73
2,37:23235,98
2,41:23222,16
2,46:23224,01
2,51:23214,26
2,55:23223,20
2,60:23234,11
2,65:23221,65
2,69:23213,45
2,74:23217,44
2,79:23235,93
2,83:11122,79
2,88:23234,58
2,93:23229,52
2,97:23255,48
3,02:23254,44
3,07:23355,41
3,44:105,48
3,48:115,45
3,53:117,78
3,58:127,36
3,62:131,24
3,67:130,33
3,72:131,93
3,76:127,32
3,81:117,18
3,85:117,80
3,90:117,15
3,95:121,04
3,99:131,22
4,04:130,38
4,09:130,34
4,13:129,57
4,18:120,38
4,23:121,06
4,32:100,12
4,37:23483,16
4,41:112,95
4,46:23448,04
4,50:23396,09
4,55:23292,90
4,60:117,21
4,64:116,58
4,69:116,62
4,74:119,18
4,78:131,19
4,83:130,34
4,88:129,59
4,92:132,64
4,97:129,68
5,02:132,71
5,06:133,57
5,11:128,94
5,15:131,09
5,20:132,75
5,25:129,68
5,29:131,26
5,34:131,22
5,39:130,38
5,43:146,01
5,48:140,43
5,57:23450,16
5,62:130,46
5,67:132,02
5,71:23243,22
5,76:23456,28
5,85:23246,64
5,90:23274,97
5,94:23310,30
5,99:23229,71
6,08:23214,33
6,13:23221,53
6,18:23263,48
6,22:23213,17
6,27:23235,04
6,32:23222,02
6,36:23214,90
6,41:23230,05
6,46:23212,55
6,50:23221,33
6,55:23226,70
6,59:23217,07
6,64:23272,07
6,69:11102,74
6,73:23263,38
6,78:23217,53
6,97:23243,63
7,11:23214,11
7,15:23229,58
7,20:23225,70
7,24:23244,82
7,29:23243,09
7,34:23249,66
7,38:23226,67
7,43:23246,31
7,48:23258,55
7,52:23230,34
7,57:23225,60
7,62:23280,25
7,66:23238,08
7,71:23221,47
7,85:117,87
7,89:117,19
7,94:117,21
7,99:117,21
8,03:116,57
8,08:119,10
8,13:44,01
8,17:129,52
8,22:132,72
8,27:143,19
8,31:141,13
8,36:139,35
8,45:132,82
8,50:129,76
8,54:130,43
8,68:94,20
8,78:132,70
8,82:130,43
8,87:129,60
8,92:130,56
8,96:128,92
9,01:119,19
9,06:118,45
9,10:103,41
9,15:103,41
9,20:103,89
9,24:106,46
9,29:214,93
9,33:23427,95
9,38:23356,01
9,43:106,41
9,47:100,57
9,52:106,39
9,57:104,40
9,61:99,70
9,66:106,42
9,71:103,50
9,75:104,47
9,80:106,97
9,85:99,68
9,89:23454,22
9,94:23299,56
9,98:23275,30
10,03:23222,72
10,08:23246,09
10,12:23221,14
10,17:23240,54
10,22:23246,81
10,26:23224,74
10,31:23249,41
10,36:23214,79
10,40:23213,46
10,45:23259,51
10,50:23217,39
10,54:23215,36
10,59:23224,87
10,63:23242,27
10,68:23270,82
10,73:23243,19
10,77:23222,75
10,82:23268,78
10,87:23321,62
10,91:23259,65
11,05:23226,24
11,10:23222,92
11,15:23218,83
11,19:23211,71
11,24:11112,28
11,28:23261,03
11,33:23265,31
11,38:23245,92
11,42:57,09
11,61:103,45
11,66:103,91
11,70:102,02
11,75:107,96
11,80:105,43
11,84:104,46
11,89:116,64
11,94:115,99
11,98:114,77
12,03:121,72
12,07:123,16
12,12:125,12
12,17:128,85
12,21:120,37
12,26:116,52
12,31:130,55
12,35:131,06
12,40:131,89
12,45:128,88
12,49:23397,75
12,59:118,45
12,63:116,54
12,68:119,70
12,72:115,45
12,77:115,30
12,82:119,86
12,86:116,59
12,91:114,13
12,96:119,04
13,00:118,47
13,05:115,38
13,10:128,92
13,14:23376,55
13,19:23274,66
13,42:23251,56
13,47:23489,82
13,51:23344,61
13,56:23378,44
13,61:23246,47
13,65:23230,42
13,93:23252,82
13,98:23213,07
14,02:23214,84
14,07:11103,54
14,63:11128,77
14,72:23221,60
14,77:23232,20
14,81:23230,43
14,86:23214,80
14,91:23213,97
14,95:23227,10
15,00:23217,53
15,09:23252,50
15,14:11126,70
15,19:23219,86
15,23:23331,66
15,42:116,64
15,46:124,48
15,51:132,81
15,56:130,29
15,74:132,03
15,79:128,82
15,84:115,43
15,88:116,71
15,93:102,98
15,98:105,93
16,02:113,04
16,07:102,54
16,11:23255,43
16,16:23379,15
16,25:117,83
16,30:119,14
16,35:116,62
16,39:124,46
16,44:130,33
16,49:128,88
16,53:132,85
16,58:131,20
16,63:129,57
16,67:131,94
16,72:130,35
16,76:131,92
16,81:119,10
16,86:119,73
16,90:111,22
16,95:106,45
17,00:105,43
17,04:23360,68
17,09:23326,16
17,14:23233,81
17,18:23267,23
17,23:23278,08
17,28:23437,54
17,32:23307,65
17,37:23267,90
17,41:23256,09
17,46:23230,78
17,51:23244,80
17,55:23216,40
17,60:23215,01
17,65:23214,28
17,69:23229,33
17,74:23216,00
17,79:23226,55
17,83:23216,80
17,88:23233,67
17,93:23222,08
17,97:23263,27
18,02:23231,24
18,07:23226,94
18,11:23223,19
18,16:23254,43
18,20:23248,09
18,34:23286,10
18,53:23227,99
18,58:23258,46
18,62:23216,49
18,67:23274,78
18,95:23292,97
18,99:23393,46
19,04:74,48
19,18:142,11
19,23:139,52
19,27:141,22
19,32:155,14
19,37:153,17
19,41:156,29
19,46:156,19
19,50:154,13
19,55:157,41
19,60:155,05
19,64:154,31
19,69:156,34
19,74:156,21
19,78:132,70
19,83:133,50
20,11:116,55
20,15:100,66
20,20:103,90
20,25:103,47
20,29:102,92
20,34:104,49
20,39:109,65
20,43:105,94
20,48:103,97
20,53:106,44
20,57:104,44
20,62:104,46
20,67:23324,48
20,71:23337,59
21,04:107,51
21,08:103,47
21,13:107,03
21,22:23322,14
21,32:23386,30
21,36:23235,78
21,41:23242,06
21,46:23287,61
21,50:23264,78
21,55:23223,80
21,59:23241,07
21,64:23223,09
21,69:23272,33
21,73:23227,73
21,78:23213,38
21,83:23212,92
21,87:23216,29
21,92:23243,09
21,97:11112,14
22,01:23249,22
22,06:23220,27
22,29:23223,00
22,34:23248,48
22,38:23294,26
22,43:23228,62
22,48:23279,21
22,52:11113,77
22,57:86,81
22,62:23247,79
22,71:23233,06
22,76:23443,76
22,80:285,63
22,99:98,53
23,03:102,15
23,13:103,01
23,17:102,03
23,27:117,25
23,31:114,13
23,36:121,71
23,45:104,98
23,59:128,14
23,64:130,38
23,68:136,06
23,73:136,96
23,78:23419,53
23,82:23429,37
23,87:123,85
23,92:130,43
23,96:131,85
24,01:137,71
24,06:138,63
24,10:133,61
24,15:138,52
24,20:137,75
24,24:135,15
24,29:139,44
24,33:138,58
24,38:137,72
24,43:139,48
24,47:135,17
24,52:136,92
24,57:141,13
24,61:137,75
24,66:138,60
24,71:142,10
24,75:144,10
24,80:135,16
24,85:271,49
24,89:133,57
24,94:131,18
24,98:131,20
25,03:130,54
25,08:130,38
25,12:131,90
25,17:130,37
25,22:117,77
25,26:117,14
25,31:119,08
25,36:117,14
25,40:118,51
25,45:23361,31
25,50:122,36
25,77:131,91
25,82:121,68
25,87:119,07
25,91:99,90
25,96:99,67
26,01:109,59
26,05:105,41
26,10:104,94
26,15:105,47
26,19:106,97
26,24:23232,66
26,28:23224,24
26,61:23316,61
26,66:23220,58
26,70:23225,89
26,75:80,41
26,80:91,08
26,84:96,61
26,89:99,83
26,94:105,95
26,98:105,93
27,03:109,64
27,07:119,03
27,12:123,12
27,17:23572,52
27,40:119,05
27,45:121,66
27,49:132,67
27,54:130,33
27,59:136,81
27,63:23263,40
27,68:23260,71
27,72:106,48
27,77:105,42
27,82:105,95
27,91:117,82
27,96:114,79
28,00:118,45
28,05:119,07
28,10:114,78
28,14:116,00
28,19:119,12
28,24:116,00
28,28:114,81
28,33:119,78
28,37:116,63
28,42:114,77
28,47:117,87
28,51:117,86
28,56:116,00
28,61:117,18
28,65:117,19
28,70:117,86
28,79:104,51
28,84:104,46
28,89:103,42
28,93:109,08
28,98:119,81
29,02:116,00
29,12:130,48
29,16:129,56
29,21:133,51
29,26:131,06
29,54:111,87
29,58:149,94
29,63:136,81
29,68:141,25
29,72:153,97
29,77:153,11
29,81:156,35
29,86:164,30
29,91:156,24
29,95:152,91
30,00:158,55
30,05:154,33
30,14:23439,32
30,28:156,24
30,33:154,14
30,56:156,28
30,60:156,14
30,65:162,34
30,70:176,51
30,74:173,63
30,93:135,92
30,98:117,78
31,02:117,79
31,07:125,15
31,11:125,95
31,16:123,14
31,21:23497,95
31,25:127,44
31,49:118,48
31,53:119,05
31,58:121,78
31,63:132,86
31,67:129,59
31,72:129,65
31,76:133,50
31,81:130,33
31,86:129,65
31,90:135,09
31,95:131,06
32,00:131,08
32,04:133,50
32,09:131,89
32,14:129,64
32,18:132,70
32,23:132,64
32,28:126,67
32,32:116,64
32,37:117,17
32,42:118,41
32,46:118,42
32,51:116,60
32,55:123,12
32,60:132,09
32,65:130,32
32,69:129,55
32,74:132,67
32,79:131,88
32,83:128,81
32,88:131,11
32,93:134,29
32,97:131,84
33,02:129,59
33,07:131,13
33,11:131,23
33,16:132,77
33,20:125,95
33,25:117,18
33,30:123,80
33,34:121,76
33,39:117,13
33,44:117,15
33,48:130,31
33,53:136,83
33,58:131,89
33,62:138,61
33,67:23391,73
33,72:23267,53
33,76:23313,09
33,81:23239,96
33,85:23243,04
33,90:23254,79
33,95:23272,63
34,18:23363,32
34,23:23274,59
34,27:23217,47
34,32:23421,38
34,37:124,44
34,41:121,66
34,46:132,68
34,50:131,84
34,55:23321,43
34,60:23436,93
34,64:131,93
34,69:131,16
34,74:116,02
34,78:119,73
34,83:103,46
34,88:104,47
34,92:103,90
34,97:104,89
35,02:105,99
35,06:103,01
35,11:23515,10
35,16:23476,61
35,20:23275,18
35,25:23407,24
35,29:107,99
35,34:121,70
35,39:118,47
35,43:124,42
35,48:132,74
35,53:129,63
35,57:128,80
35,62:134,28
35,67:132,68
35,71:131,85
35,76:132,74
35,81:131,85
35,85:131,13
35,90:135,98
35,94:132,68
35,99:131,06
36,04:132,71
36,08:126,65
36,13:114,22
36,18:117,21
36,22:118,50
36,27:121,68
36,32:117,19
36,36:118,45
36,41:128,78
36,46:131,87
36,50:129,57
36,55:132,72
36,59:131,92
36,64:130,40
36,69:134,29
36,73:130,39
36,78:130,35
36,83:132,78
36,87:132,66
36,92:134,28
36,97:23409,39
37,01:23348,57
37,06:23327,69
37,11:23235,92
37,15:23245,72
37,20:121,68
37,24:119,03
37,29:123,75
37,34:133,49
37,38:130,33
37,43:129,63
37,52:23445,11
37,71:23364,79
37,80:23373,94
38,03:23301,54
38,13:119,81
38,17:117,77
38,22:125,30
38,27:133,61
38,31:129,56
38,36:131,06
38,41:23506,00
38,45:23512,42
38,50:120,39
38,55:119,10
38,64:99,67
38,68:102,99
38,73:104,41
38,78:104,92
38,82:104,46
38,87:104,90
38,92:23289,69
38,96:23219,95
39,01:23234,57
39,10:115,42
39,15:126,60
39,20:130,43
39,24:132,80
39,29:139,67
39,33:138,53
39,38:133,60
39,43:138,59
39,47:138,61
39,52:136,12
39,57:140,45
39,61:139,38
39,66:137,85
39,71:139,47
39,75:138,49
39,80:140,33
39,85:129,70
39,89:23264,52
39,94:23254,48
40,03:125,92
40,08:119,25
40,12:117,77
40,17:128,83
40,22:137,87
40,26:129,53
40,31:129,71
40,36:130,53
40,40:136,86
40,45:136,96
40,50:138,50
40,54:120,35
40,59:125,97
40,63:116,01
40,68:108,06
40,73:109,66
40,77:109,07
40,82:107,50
40,87:108,07
40,91:108,53
40,96:108,00
41,01:104,41
41,05:104,43
41,10:105,47
41,15:105,40
41,19:103,41
41,24:107,44
41,29:106,44
41,33:101,56
41,38:23322,58
41,42:23264,08
41,47:23223,64
41,52:23256,89
41,56:23459,20
41,61:23264,43
41,66:23400,68
41,70:23471,37
41,75:23236,36
41,80:23218,31
41,84:23272,22
41,89:85,42
41,94:84,73
41,98:80,70
42,03:80,16
42,07:23474,91
42,12:81,64
42,17:23439,39
42,21:23510,48
42,26:79,88
42,31:23294,24
42,35:23404,26
42,40:23466,70
42,45:88,90
42,49:91,10
42,86:23302,21
42,91:116,53
42,96:117,76
43,00:116,54
43,05:128,26
43,10:132,01
43,14:128,82
43,19:131,95
43,24:132,00
43,28:131,09
43,33:133,53
43,37:131,86
43,42:129,69
43,47:134,33
43,51:131,93
43,56:131,16
43,61:131,98
43,65:130,31
43,70:130,54
43,75:131,87
43,79:130,44
43,84:130,44
43,89:131,16
43,93:131,11
43,98:130,39
44,03:131,30
44,07:131,21
44,12:130,33
44,16:131,09
44,21:137,67
44,26:140,40
44,30:137,78
44,35:139,43
44,40:136,07
44,44:131,92
44,49:132,71
44,54:129,60
44,63:44,72
44,68:179,04
44,77:119,85
44,81:116,56
44,86:117,81
44,91:117,82
44,95:114,18
45,00:117,21
45,05:23482,44
45,09:23302,28
45,14:23397,39
45,19:23379,75
45,51:23252,22
45,56:23438,57
45,60:23278,23
45,70:120,37
45,74:117,79
45,79:119,03
45,84:132,69
45,88:131,87
45,93:130,40
45,98:131,99
46,02:131,86
46,07:126,66
46,11:117,22
46,16:23507,84
46,21:103,43
46,25:112,46
46,30:113,58
46,67:119,17
46,72:117,29
46,76:117,81
46,81:130,41
46,86:129,58
46,90:129,61
46,95:133,66
47,00:131,17
47,04:129,67
47,09:133,52
47,14:129,57
47,18:131,14
47,42:117,76
47,46:125,84
47,51:131,88
47,55:130,36
47,60:119,04
47,65:116,62
47,69:125,18
47,74:131,93
47,79:128,16
47,83:132,72
47,88:131,93
47,93:128,90
47,97:133,57
48,02:129,60
48,07:130,33
48,11:132,12
48,34:117,14
48,39:116,75
48,44:117,30
48,48:117,20
48,53:116,52
48,58:119,07
48,62:118,49
48,67:46,03
48,72:23264,74
48,76:23274,37
48,81:23271,18
48,85:23250,33
48,90:23236,41
48,95:23226,71
48,99:23221,07
49,04:23410,75
49,32:23286,86
49,37:23266,54
49,46:117,83
49,50:116,65
49,55:126,67
49,60:131,16
49,64:129,53
49,69:132,69
49,74:120,38
49,78:127,34
49,83:126,60
49,88:117,21
49,92:114,18
49,97:104,41
50,02:104,93
50,06:104,42
50,11:23376,71
50,16:104,43
50,20:104,41
50,43:118,51
50,48:117,91
50,53:115,93
50,57:128,18
50,62:132,67
50,67:128,08
50,71:135,10
50,76:134,33
50,81:129,56
50,85:133,51
50,90:134,30
50,94:130,30
50,99:131,06
51,04:131,08
51,08:131,86
51,13:133,50
51,18:123,78
51,22:121,73
51,27:121,11
51,32:117,79
51,36:117,19
51,41:117,20
51,46:121,06
51,50:131,18
51,55:129,69
51,59:128,81
51,64:133,53
51,69:131,91
51,73:130,40
51,78:133,57
51,83:132,66
51,87:129,63
51,92:131,07
51,97:131,88
52,01:131,91
52,06:132,71
52,11:131,95
52,15:123,81
52,20:117,84
52,24:117,18
52,29:117,13
52,34:117,77
52,38:123,11
52,43:136,05
52,48:23401,04
52,52:23440,95
52,57:23260,72
52,62:23260,77
52,66:23239,96
52,71:23242,98
52,76:23226,05
52,80:23229,74
52,85:23248,85
52,90:23442,51
53,17:23324,63
53,22:23336,60
53,31:124,44
53,36:124,46
53,41:131,29
53,45:131,88
53,50:140,96
53,55:23451,23
53,64:126,55
53,68:119,04
53,73:123,84
53,78:102,49
53,82:110,22
53,87:110,21
53,92:108,59
53,96:103,97
54,01:106,99
54,06:103,92
54,10:105,40
54,29:128,04
54,33:128,88
54,38:134,42
54,43:140,26
54,47:135,14
54,52:140,46
54,57:140,24
54,61:137,62
54,66:142,99
54,71:140,34
54,75:138,52
54,80:139,51
54,85:138,65
54,89:137,71
54,94:138,61
54,98:138,67
55,17:121,69
55,22:116,52
55,26:119,09
55,31:129,53
55,36:131,84
55,40:131,87
55,45:132,65
55,50:131,09
55,54:131,11
55,59:132,63
55,64:124,42
55,68:121,69
55,73:116,58
55,77:104,89
55,82:23557,18
55,87:102,45
55,91:23310,91
55,96:23467,09
56,01:23444,57
56,05:144,95
56,10:151,99
56,15:102,96
56,19:101,60
56,24:101,05
56,29:105,45
56,33:23548,98
56,38:101,05
56,42:23366,70
56,47:23261,14
56,52:23260,03
56,56:23237,43
56,61:23249,25
56,66:23218,32
56,70:23236,17
56,75:23291,37
56,80:23219,29
56,84:23279,94
56,89:23228,32
56,94:23211,26
56,98:23291,49
57,03:90,65
57,07:83,76
57,12:23539,63
57,17:23371,33
57,21:23520,04
57,26:23331,44
57,31:23276,23
57,35:90,31
57,40:104,02
57,45:104,43
57,49:109,12
57,54:117,78
57,59:116,52
57,63:117,77
57,68:109,57
57,72:104,43
57,77:104,90
57,82:102,97
57,86:112,58
57,91:116,54
57,96:115,34
58,00:119,12
58,05:117,85
58,10:114,77
58,14:119,13
58,19:117,82
58,24:115,35
58,28:119,13
58,33:119,16
58,37:113,63
58,42:117,84
58,47:127,46
58,51:23381,24
58,56:23302,04
58,61:128,82
58,75:23330,42
58,79:23279,46
58,84:23270,22
58,89:23225,67
58,93:23241,90
58,98:23367,98
59,03:23256,71
59,16:23288,96
59,21:23220,96
59,26:23291,46
59,30:23224,04
59,35:23435,09
59,40:23417,60

Теперь, когда есть больше, чем 6 pitches или правильные числа в строке (разделенные ":"), это означает, что есть pause и я хотел бы показать gap, different color line или оставьте это как есть в данный момент без линии, идущей к верхней точке. Я знаю, что код на данный момент не игнорирует высокие частоты вообще, но я не уверен, какой подход выбрать, и поэтому я подумал, что я должен немного остановиться и искать способ отобразить "pauses" первый.

И, наконец, я думаю, что было бы целесообразно загрузить короткую часть кода, которая draws the lines:

    DataPoint[] points = new DataPoint[pitchesWithOutPauses + 100];
    for (int i = 0; i < pitchesList.size(); i++) {
        if ((getPitchesInfo(pitchesList.get(i), 1) < 1000)) {
            System.out.println(getPitchesInfo(pitchesList.get(i), 1));
            points[i] = new DataPoint(getPitchesInfo(pitchesList.get(i), 0), getPitchesInfo(pitchesList.get(i), 1));
        }
    }
    series = new LineGraphSeries<>(points);

    // set manual X bounds
    graph.getViewport().setYAxisBoundsManual(true);
    graph.getViewport().setMinY(0);
    graph.getViewport().setMaxY(200);

    graph.getViewport().setXAxisBoundsManual(true);
    graph.getViewport().setMinX(0);
    graph.getViewport().setMaxX(40); //mitu korraga näeb



    final Runnable runnable = new Runnable() {
        public void run() {

            assa.setMinX(orderNr);
            assa.setMaxX(orderNr+10);

            graph.addSeries(series);
            if(pitchesList.size() != orderNr){  
                orderNr++;
            }
            handler.postDelayed(this, 20);
        }
    };

    handler.postDelayed(runnable, 80);

У меня была одна идея сделать series для каждого слова, но я не совсем уверен, как выполнить такое количество переменных и будет ли линейный граф обрабатывать такое количество серий или нет, поскольку полные песни обычно занимают 3-4 минуты, а некоторые продолжаются даже дольше.

Любые идеи, предложения, помощь действительно приветствуется. Или комментарии к стилю кода.

0 ответов

Другие вопросы по тегам