Android 根据心电图(ECG)数据分析绘制心电图

Android 根据心电图(ECG)数据分析(瞎猜)绘制样子差不多的心电图

项目中用到心电图分析,使用某仪器测量后得到的心电图数据,分析后放到android项目中,对数据不是很了解,所以只能是解读个大概(样子像就可以了)

先来看一些数据吧!由于数据太多我们只放一部分,每一个标签有5000条数据!



    
            
              
              
                -21 -28 -30 -27 -24 -31 -24 -24 -28 -18 -20 -25 -28 -26 -22 -28 -22 -24 -28 -18 -20 -25 -26 -24 -21 -28 -21 -22 -26 -15 -16 -22 -25 -23 -19 -26 -19 -21 -26 -16 -17 -23 -25 -23 -19 -26 -19 -21 -26 -16 -17 -22 -25 -22 -19 -26 -20 -22 -27 -18 -20 -25 -27 -23 -22 -29 -21 -24 -29 -19 -21 -26 -30 -27 -25 -32 -25 -28 -33 -24 -25 -31 -33 -30 -26 -34 -28 -30 -37 -26 -28 -32 -35 -31 -28 -34 -30 -32 -38 -28 -29 -34 -38 -34 -30 -36 -32 -33 -39 -29 -30 -34 -37 -35 -30 -38 -32 -34 -39 -29 -31 -35 -38 -35 -30 -36 -30 -32 -39 -29 -30 -33 -36 -34 -30 -37 -31 -33 -39 -28 -29 -33 -35 -31 -27 -33 -26 -27 -32 -21 -22 -25 -26 -21 -17 -24 -19 -25 -35 -28 -32 -35 -36 -31 -26 -32 -26 -29 -37 -27 -29 -34 -36 -32 -28 -35 -28 -30 -35 -26 -27 -34 -37 -35 -32 -39 -32 -34 -40 -29 -31 -38 -38 -34 -32 -38 -31 -34 -41 -30 -29 -34 -38 -34 -31 -38 -30 -31 -37 -26 -26 -31 -34 -30 -26 -31 -21 -16 -14 4 11 18 26 40 58 71 92 95 84 86 79 79 79 75 62 21 -14 -58 -99 -133 -182 -208 -203 -179 -151 -135 -110 -96 -83 -58 -45 -42 -38 -27 -19 -20 -9 -8 -11 2 3 0 -2 1 4 -3 4 4 0 13 13 10 7 10 13 5 12 12 8 20 20 17 14 17 20 14 19 20 17 29 30 26 24 28 31 25 31 32 29 42 42 39 39 43 47 42 50 50 48 62 62 59 59 64 69 64 73 73 71 86 88 86 87 92 97 94 103 104 102 116 119 118 121 127 132 128 139 139 139 153 157 155 155 161 167 163 171 169 165 178 178 175 172 174 177 168 172 169 162 171 168 159 153 151 149 135 135 127 116 121 114 102 93 89 86 71 71 63 53 59 53 46 39 38 36 25 27 24 17 25 24 18 14 15 16 6 11 9 3 12 12 7 5 6 8 0 4 1 -3 6 6 1 -2 0 2 -6 -1 -4 -9 1 1 -4 -7 -5 -2 -11 -5 -9 -14 -3 -3 -8 -9 -7 -5 -13 -7 -11 -16 -5 -5 -9 -10 -7 -4 -12 -6 -8 -15 -5 -4 -7 -11 -7 -4 -13 -8 -11 -16 -6 -4 -9 -11 -8 -5 -13 -8 -10 -17 -5 -6 -10 -12 -8 -6 -14 -9 -12 -17 -8 -8 -12 -15 -11 -8 -15 -10 -12 -18 -8 -8 -12 -14 -11 -8 -16 -9 -11 -18 -6 -5 -9 -11 -8 -3 -12 -6 -9 -14 -2 -3 -8 -9 -6 -3 -11 -5 -6 -12 -3 -1 -4 -7 -3 -1 -8 -3 -4 -11 0 0 -4 -6 -2 1 -8 -2 -4 -9 1 2 -2 -4 -1 4 -5 1 -2 -8 3 2 -3 -4 0 2 -7 -1 -4 -10 0 1 -3 -6 -3 0 -8 -3 -6 -11 -1 -2 -7 -9 -6 -2 -10 -5 -9 -15 -5 -4 -8 -11 -9 -5 -14 -7 -10 -16 -5 -5 -9 -12 -9 -6 -15 -10 -11 -18 -9 -9 -12 -15 -12 -7 -16 -9 -12 -19 -9 -9 -14 -14 -12 -9 -17 -9 -13 -17 -6 -6 -10 -10 -7 -2 -10 -3 -5 -12 -8 -11 -19 -25 -21 -15 -24 -19 -21 -27 -19 -20 -26 -29 -26 -22 -30 -24 -27 -33 -24 -25 -29 -31 -30 -28 -38 -34 -39 -44 -32 -31 -37 -39 -36 -32 -40 -34 -37 -43 -34 -33 -38 -39 -36 -32 -40 -34 -37 -42 -32 -31 -35 -35 -33 -30 -37 -30 -32 -33 -16 -9 -6 1 14 26 26 45 59 63 73 68 60 64 76 84 64 43 -4 -56 -80 -108 -154 -194 -202 -186 -171 -141 -122 -111 -81 -68 -59 -48 -37 -27 -31 -19 -17 -19 -5 -4 -6 -6 -3 2 -5 1 -1 -6 5 7 5 4 9 14 6 11 9 4 15 16 14 13 16 20 12 18 14 10 21 23 21 19 23 27 19 24 22 17 29 29 28 27 34 37 30 37 36 31 43 45 46 43 48 53 46 53 51 46 58 62 60 60 66 71 65 72 71 66 80 83 81 82 89 94 87 95 95 91 104 106 105 104 110 116 109 115 114 109 121 121 118 117 122 125 114 118 114 105 113 112 105 99 100 100 87 87 80 69 73 67 58 49 46 43 28 27 19 8 12 8 -1 -8 -8 -10 -21 -19 -24 -32 -26 -27 -33 -35 -34 -33 -42 -38 -43 -49 -40 -40 -44 -47 -44 -39 -49 -45 -48 -55 -45 -43 -48 -50 -47 -43 -51 -47 -49 -55 -46 -46 -49 -51 -49 -43 -52 -47 -50 -57 -47 -45 -50 -52 -48 -44 -53 -48 -50 -55 -45 -44 -48 -49 -45 -41 -49 -44 -46 -52 -41 -40 -44 -46 -41 -38 -49 -41 -42 -50 -39 -39 -43 -45 -40 -36 -44 -38 -41 -46 -36 -36 -39 -42 -37 -35 -43 -36 -38 -45 -35 -34 -39 -41 -35 -33 -40 -34 -35 -42 -33 -33 -37 -40 -33 -31 -38 -32 -35 -41 -31 -31 -35 -37 -31 -29 -37 -31 -33 -40 -28 -28 -33 -35 -30 -26 -34 -27 -31 -37 -27 -26 -31 -34 -27 -24 -32 -26 -28 -35 -26 -26 -30 -31 -26 -23 -32 -25 -27 -34 -25 -22 -27 -30 -26 -22 -31 -25 -26 -33 -23 -23 -27 -30 -26 -23 -31 -25 -27 -35 -24 -22 -28 -32 -27 -25 -33 -26 -30 -37 -26 -26 -30 -33 -29 -26 -34 -29 -30 -37 -28 -27 -32 -37 -31 -28 -37 -31 -31 -40 -30 -29 -34 -36 -32 -29 -37 -30 -33 -40 -29 -30 -34 -37 -32 -29 -37 -32 -33 -40 -31 -31 -34 -36 -30 -28 -37 -30 -33 -40 -29 -28 -33 -34 -30 -27 -35 -28 -30 -36 -27 -27 -31 -33 -28 -24 -31 -24 -24 -29 -18 -17 -20 -22 -17 -13 -20 -15 -21 -33 -27 -27 -31 -32 -26 -22 -31 -26 -29 -36 -27 -28 -32 -32 -28 -25 -33 -26 -29 -35 -24 -26 -32 -35 -31 -29 -37 -29 -34 -40 -28 -28 -32 -33 -28 -27 -35 -27 -29 -35 -25 -26 -29 -30 -27 -22 -29 -22 -26 -32 -22 -21 -26 -27 -23 -18 -26 -19 -17 -16 3 12 18 25 41 54 57 77 79 72 76 79 85 94 101 89 47 5 -42 -78 -97 -136 -177 -184 -165 -140 -126 -101 -84 -74 -52 -37 -33 -28 -17 -10 -14 -2 0 -5 7 9 3 2 9 11 3 11 10 3 15 16 13 10 15 18 10 17 16 11 22 24 20 17 21 26 19 25 24 17 29 31 29 27 31 33 25 33 33 28 39 39 36 35 41 44 37 44 44 38 51 53 50 48 54 57 52 60 59 52 65 69 66 65 70 74 69 77 78 74 87 90 88 87 95 99 94 103 104 100 114 116 113 112 121 125 118 125 126 121 131 135 129 126 132 132 123 130 126 118 127 126 120 113 112 113 99 103 96 84 88 84 75 65 63 60 45 48 41 28 35 30 23 16 18 17 5 10 4 -4 5 4 -3 -7 -2 -1 -10 -3 -5 -12 -3 -3 -8 -11 -6 -4 -13 -6 -7 -14 -2 -2 -8 -10 -5 -2 -11 -3 -5 -13 -2 1 -5 -7 -2 -1 -9 0 -3 -12 0 2 -4 -7 0 0 -7 0 0 -9 2 3 -2 -5 1 3 -4 2 0 -9 3 4 -1 -8 0 3 -7 0 -2 -11 0 3 -4 -7 -1 -1 -9 -2 -4 -12 -1 -1 -7 -10 -5 -3 -12 -4 -7 -16 -5 -4 -10 -13 -8 -7 -15 -9 -10 -18 -9 -8 -14 -18 -12 -10 -18 -11 -11 -20 -11 -8 -14 -19 -13 -11 -20 -12 -14 -22 -12 -11 -16 -19 -13 -11 -20 -14 -16 -24 -14 -11 -18 -23 -18 -15 -24 -16 -17 -27 -16 -15 -22 -25 -17 -15 -25 -18 -19 -28 -17 -15 -22 -26 -19 -19 -27 -19 -21 -30 -20 -18 -23 -26 -20 -20 -30 -22 -23 -30 -20 -20 -25 -28 -24 -21 -29 -23 -25 -32 -23 -21 -29 -32 -25 -23 -32 -25 -27 -34 -23 -22 -29 -31 -27 -25 -33 -24 -26 -33 -23 -22 -28 -31 -25 -23 -31 -23 -26 -33 -23 -21 -27 -30 -25 -22 -31 -24 -24 -31 -20 -20 -26 -29 -22 -20 -29 -20 -21 -29 -19 -17 -24 -27 -20 -17 -24 -16 -16 -23 -12 -9 -14 -16 -8 -5 -13 -5 -7 -17 -12 -14 -23 -26 -18 -16 -23 -15 -16 -27 -17 -16 -21 -25 -19 -19 -28 -20 -20 -29 -18 -16 -23 -27 -21 -21 -30 -21 -24 -30 -22 -19 -25 -28 -21 -20 -25 -19 -21 -28 -18 -17 -22 -25 -18 -18 -26 -18 -19 -26 -16 -14 -21 -23 -17 -15 -24 -15 -15 -22 -8 0 1 9 24 38 41 60 72 75 91 91 81 81 96 107 102 94 58 1 -36 -62 -97 -142 -172 -174 -168 -138 -118 -108 -80 -62 -53 -45 -28 -19 -22 -9 -6 -9 4 10 6 3 11 13 4 12 11 4 17 18 13 11 20 21 12 20 19 9 22 26 21 18 25 27 19 27 25 19 30 33 29 26 33 37 27 34 34 27 39 41 38 37 43 46 37 46 46 38 51 54 52 50 56 60 52 60 61 54 67 71 67 65 72 78 70 79 81 75 87 93 88 88 97 101 94 104 106 99 114 118 114 114 123 127 120 130 130 124 134 138 134 133 140 141 131 139 137 129 137 138 130 124 127 127 115 119 111 100 106 104 94 85 85 81 66 68 60 46 52 49 39 34 35 32 20 23 18 6 15 16 8 4 8 8 0 5 1 -6 3 2 -3 -6 -1 1 -9 -2 -4 -12 -2 -1 -5 -8 -2 0 -9 -4 -5 -13 -3 -1 -5 -8 -2 0 -8 -2 -5 -13 -2 -1 -5 -8 -4 -1 -10 -2 -3 -12 -4 -1 -6 -9 -3 -1 -9 -2 -4 -13 -2 0 -6 -7 -1 0 -9 -2 -3 -13 -2 -1 -8 -11 -4 -2 -11 -4 -4 -14 -4 -4 -9 -12 -5 -4 -14 -8 -9 -19 -8 -6 -11 -16 -9 -9 -17 -11 -14 -23 -9 -8 -14 -19 -11 -11 -19 -13 -13 -23 -12 -12 -17 -21 -13 -13 -21 -14 -15 -24 -12 -12 -18 -21 -15 -13 -22 -15 -16 -24 -13 -14 -19 -22 -16 -15 -23 -16 -16 -27 -15 -12 -17 -21 -15 -13 -22 -16 -16 -26 -15 -15 -20 -23 -16 -15 -24 -17 -17 -27 -16 -15 -19 -24 -17 -16 -23 -18 -19 -28 -17 -17 -22 -26 -18 -17 -25 -18 -19 -29 -16 -16 -21 -24 -16 -17 -24 -18 -19 -27 -17 -15 -20 -26 -18 -17 -24 -18 -18 -28 -18 -16 -21 -23 -17 -16 -24 -17 -17 -26 -17 -16 -20 -22 -16 -15 -24 -17 -18 -26 -15 -13 -18 -21 -15 -13 -21 -14 -15 -23 -12 -10 -15 -18 -11 -10 -16 -8 -8 -16 -4 -2 -6 -8 -1 2 -4 1 -2 -16 -10 -13 -17 -21 -12 -9 -17 -10 -11 -22 -13 -12 -17 -22 -15 -13 -22 -15 -15 -24 -13 -12 -18 -24 -20 -18 -26 -19 -20 -28 -18 -16 -22 -25 -19 -19 -26 -20 -21 -27 -17 -16 -22 -26 -19 -18 -25 -20 -20 -28 -19 -18 -23 -26 -18 -17 -24 -18 -18 -23 -4 7 12 19 36 46 47 71 88 87 98 98 95 98 107 103 80 50 5 -52 -75 -111 -161 -191 -182 -164 -152 -123 -106 -100 -73 -56 -52 -47 -31 -24 -28 -16 -11 -15 -3 0 -4 -6 2 1 -5 3 2 -4 7 10 7 4 10 12 4 11 12 4 17 20 15 12 19 21 13 21 21 13 25 29 24 22 28 28 21 28 28 20 33 37 33 31 38 40 32 40 41 35 48 51 46 46 53 55 49 57 57 50 62 67 63 63 71 75 69 76 78 72 87 92 88 87 96 101 95 104 105 98 112 118 116 114 124 127 120 129 131 122 134 138 133 129 136 137 127 133 131 121 130 131 121 115 120 115 102 105 98 85 89 85 72 63 64 59 45 47 41 26 30 27 17 9 14 11 -2 2 0 -10 -3 -3 -11 -16 -12 -11 -22 -16 -17 -26 -18 -16 -24 -28 -22 -22 -31 -23 -25 -33 -23 -22 -28 -31 -27 -25 -34 -25 -26 -34 -23 -21 -27 -30 -24 -22 -31 -23 -23 -33 -22 -18 -24 -27 -21 -20 -29 -19 -21 -30 -21 -18 -23 -28 -20 -20 -29 -21 -21 -30 -21 -19 -25 -28 -22 -20 -29 -22 -23 -32 -21 -19 -25 -29 -23 -22 -32 -25 -25 -33 -24 -22 -28 -32 -25 -24 -34 -25 -26 -35 -25 -23 -30 -32 -25 -24 -33 -26 -27 -36 -25 -24 -29 -33 -27 -25 -35 -26 -27 -37 -27 -24 -30 -35 -27 -24 -34 -26 -27 -36 -25 -23 -30 -33 -27 -26 -34 -26 -27 -36 -26 -24 -31 -35 -28 -26 -36 -29 -30 -38 -28 -27 -34 -37 -31 -32 -38 -30 -32 -40 -29 -27 -34 -38 -31 -29 -38 -30 -31 -40 -30 -29 -36 -40 -33 -30 -40 -31 -32 -40 -30 -27 -33 -37 -31 -28 -37 -31 -31 -38 -28 -26 -31 -34 -28 -26 -33 -27 -29 -36 -27 -25 -30 -34 -29 -26 -32 -25 -24 -31 -21 -19 -24 -27 -19 -15 -22 -14 -14 -23 -15 -16 -28 -36 -31 -29 -36 -28 -28 -36 -28 -28 -35 -38 -30 -30 -38 -31 -30 -39 -30 -29 -35 -39 -32 -32 -42 -36 -37 -46 -35 -35 -40 -43 -36 -34 -41 -34 -35 -45 -35 -32 -38 -42 -35 -34 -43 -37 -37 -43 -33 -32 -37 -39 -33 -31 -40 -33 -33 -41 -28 -22 -19 -12 4 16 17 35 48 60 88 101 96 87 86 87 77 75 58 17 -13 -56 -99 -146 -185 -202 -206 -180 -159 -147 -115 -97 -87 -74 -54 -43 -44 -30 -27 -30 -14 -7 -10 -12 -1 2 -5 3 2 -6 6 8 5 3 13 16 8 16 15 6 17 20 16 15 25 27 19 27 26 17 28 30 27 25 35 39 31 39 38 30 40 43 40 39 48 50 43 51 50 43 53 57 54 53 61 64 58 66 66 57 69 73 70 69 78 83 76 85 85 78 90 96 93 94 105 109 103 112 113 106 119 125 123 124 134 139 131 140 139 133 144 148 144 143 150 151 142 149 146 133 141 143 134 130 134 131 118 121 114 99 103 101 88 78 79 74 60 60 51 35 40 37 27 20 22 19 8 9 4 -9 -1 0 -9 -13 -7 -8 -18 -12 -15 -25 -15 -14 -21 -24 -17 -15 -24 -18 -20 -30 -20 -17 -23 -27 -19 -17 -27 -18 -21 -30 -19 -16 -22 -24 -17 -16 -26 -18 -20 -29 -19 -16 -22 -24 -16 -15 -25 -17 -19 -28 -17 -14 -21 -23 -16 -16 -24 -17 -19 -29 -19 -17 -24 -25 -18 -17 -27 -18 -20 -28 -20 -18 -24 -27 -21 -19 -28 -21 -23 -32 -23 -20 -28 -30 -24 -22 -32 -24 -26 -36 -27 -25 -32 -34 -28 -26 -35 -26 -28 -36 -28 -26 -32 -34 -26 -23 -33 -24 -27 -37 -27 -24 -30 -32 -26 -24 -34 -25 -28 -37 -29 -28 -33 -33 -26 -24 -33 -26 -28 -37 -27 -24 -30 -31 -24 -22 -31 -23 -25 -33 -21 -20 -27 -29 -21 -20 -27 -20 -21 -30 -20 -19 -24 -27 -20 -19 -26 -18 -21 -31 -20 -20 -26 -27 -20 -19 -27 -20 -22 -33 -21 -21 -29 -32 -25 -23 -31 -24 -26 -36 -28 -25 -33 -35 -28 -27 -35 -27 -29 -39 -29 -27 -34 -36 -28 -27 -34 -27 -30 -39 -27 -27 -34 -34 -27 -27 -33 -25 -29 -38 -29 -26 -33 -35 -29 -27 -35 -26 -29 -38 -27 -24 -31 -32 -23 -22 -28 -20 -21 -30 -21 -24 -36 -42 -38 -37 -42 -32 -33 -42 -31 -32 -40 -44 -38 -37 -44 -36 -38 -46 -36 -35 -42 -46 -39 -40 -49 -43 -45 -55 -44 -43 -49 -51 -44 -43 -50 -41 -43 -53 -43 -41 -46 -48 -41 -41 -48 -41 -42 -53 -41 -39 -45 -47 -39 -38 -46 -37 -38 -45 -29 -20 -18 -13 4 15 15 32 49 59 75 74 61 54 68 74 66 62 31 -21 -55 -84 -126 -176 -202 -201 -190 -159 -136 -125 -96 -74 -66 -54 -36 -27 -28 -15 -10 -15 0 5 1 0 10 10 4 12 11 2 15 18 13 13 23 23 15 23 23 14 26 30 26 25 34 36 28 37 35 26 40 43 39 38 48 49 40 49 49 40 53 57 53 53 61 63 56 64 64 56 68 73 68 67 76 79 72 80 80 73 85 90 86 84 94 98 91 99 100 94 106 111 108 108 117 122 115 125 126 119 133 138 136 134 143 147 139 149 150 141 152 157 152 151 158 159 151 157 155 144 153 153 145 140 144 142 129 131 124 108 112 107 95 86 86 81 66 66 60 43 48 46 34 27 30 26 14 19 15 2 10 11 3 -2 6 7 -2 6 5 -6 5 8 3 0 10 12 2 10 10 -2 8 10 4 1 9 9 -1 7 7 -4 8 11 6 3 13 15 7 15 15 4 15 18 15 12 21 23 15 22 22 11 21 25 20 16 24 26 15 21 20 8 18 21 15 11 19 20 9 15 14 2 13 14 7 3 10 10 1 7 6 -5 5 7 0 -3 4 4 -6 1 -1 -12 -2 -1 -9 -13 -5 -5 -15 -8 -10 -21 -10 -7 -13 -17 -10 -10 -18 -11 -13 -24 -12 -10 -16 -19 -11 -11 -20 -13 -14 -24 -14 -12 -17 -21 -13 -12 -21 -14 -16 -26 -15 -13 -19 -23 -16 -15 -24 -17 -18 -28 -18 -17 -23 -26 -19 -19 -29 -22 -23 -32 -23 -20 -28 -32 -25 -23 -31 -25 -27 -36 -25 -23 -29 -34 -26 -26 -34 -28 -28 -38 -29 -26 -32 -36 -29 -29 -38 -31 -31 -41 -32 -29 -35 -39 -33 -31 -40 -34 -35 -43 -34 -32 -37 -42 -35 -34 -44 -38 -38 -48 -38 -36 -41 -44 -37 -36 -46 -39 -39 -48 -38 -35 -43 -47 -39 -36 -45 -38 -38 -49 -39 -36 -41 -44 -37 -34 -42 -36 -35 -43 -32 -29 -33 -35 -26 -23 -31 -23 -22 -32 -24 -27 -37 -43 -35 -31 -37 -30 -30 -39 -29 -28 -34 -38 -32 -32 -39 -31 -31 -41 -31 -28 -33 -36 -29 -30 -39 -33 -35 -44 -35 -33 -39 -40 -34 -33 -42 -35 -36 -45 -35 -33 -40 -44 -37 -35 -45 -38 -38 -48 -38 -35 -41 -44 -38 -36 -45 -37 -35 -42 -26 -15 -13 -7 13 25 22 40 54 56 70 69 60 59 77 89 79 65 25 -33 -64 -87 -129 -172 -193 -188 -179 -147 -125 -117 -89 -70 -63 -54 -38 -30 -34 -21 -16 -22 -12 -7 -11 -13 -4 -1 -10 -1 0 -9 3 7 3 0 8 10 0 9 9 -1 12 15 8 7 15 17 9 17 17 9 21 26 21 20 28 31 23 30 30 21 32 36 30 29 36 38 29 38 36 27 39 43 38 37 46 48 39 47 46 38 51 56 51 51 59 61 53 63 64 56 69 75 69 70 79 81 74 86 87 80 94 101 96 94 105 107 100 110 110 103 115 120 115 112 121 121 111 119 117 105 115 116 107 102 107 104 91 94 89 75 80 78 66 57 59 54 39 40 33 19 23 21 10 2 7 4 -10 -4 -8 -21 -15 -14 -22 -26 -19 -20 -32 -24 -27 -38 -29 -26 -33 -37 -29 -29 -38 -30 -33 -42 -32 -28 -36 -40 -32 -30 -40 -33 -33 -42 -32 -29 -35 -39 -32 -31 -40 -32 -32 -42 -33 -29 -36 -38 -32 -31 -41 -33 -34 -43 -32 -28 -35 -39 -33 -31 -41 -33 -35 -44 -35 -32 -38 -42 -35 -34 -45 -37 -39 -49 -38 -35 -41 -45 -38 -37 -47 -39 -40 -49 -39 -35 -41 -45 -38 -36 -46 -38 -38 -48 -39 -33 -40 -44 -37 -35 -44 -35 -37 -46 -36 -31 -38 -41 -33 -33 -43 -35 -34 -43 -32 -27 -33 -37 -29 -26 -36 -27 -27 -37 -26 -21 -27 -31 -23 -20 -30 -21 -20 -29 -19 -14 -21 -24 -15 -13 -23 -14 -14 -23 -13 -9 -15 -18 -10 -8 -18 -10 -10 -20 -9 -4 -10 -13 -7 -5 -14 -6 -6 -14 -4 -1 -7 -10 -2 0 -10 -2 -3 -11 -1 3 -3 -7 1 2 -7 1 0 -9 1 5 -2 -6 1 3 -7 1 1 -10 1 4 -2 -6 0 3 -8 -1 -1 -11 0 3 -3 -7 0 3 -7 2 2 -6 4 8 4 1 9 12 2 10 7 -9 -5 -4 -10 -12 -3 0 -10 -3 -5 -17 -8 -4 -11 -16 -9 -7 -17 -8 -9 -19 -10 -5 -13 -19 -13 -13 -23 -15 -15 -24 -16 -12 -19 -22 -14 -14 -23 -15 -16 -25 -16 -12 -18 -22 -15 -13 -23 -16 -15 -25 -15 -12 -18 -21 -14 -13 -22 -12 -7 -9 9 24 29 35 53 66 73 88 89 76 86 94 98 100 102 78 25 -16 -54 -90 -118 -157 -183 -178 -152 -127 -115 -90 -74 -67 -44 -30 -29 -26 -13 -6 -11 2 5 -2 9 15 7 5 11 15 6 16 17 9 21 25 18 15 22 25 16 26 27 20 29 34 28 26 31 34 25 35 34 27 38 43 37 34 40 43 33 43 44 37 46 52 47 44 50 54 44 55 56 50 61 66 59 56 64 68 60 71 72 65 76 81 75 73 83 86 78 90 92 86 99 103 98 96 105 109 102 114 116 110 122 127 122 119 128 132 123 131 133 126 137 141 134 129 136 137 126 133 132 120 127 127 118 111 113 110 97 100 95 81 85 82 69 59 58 55 40 43 39 25 30 28 18 11 14 13 2 8 6 -4 4 5 -3 -9 -2 -2 -12 -5 -5 -15 -5 -4 -11 -16 -9 -7 -16 -9 -8 -17 -8 -6 -13 -17 -10 -9 -17 -10 -11 -20 -10 -7 -14 -18 -11 -9 -18 -11 -10 -19 -9 -5 -13 -17 -10 -9 -18 -10 -10 -19 -8 -6 -13 -16 -10 -8 -17 -9 -8 -17 -7 -4 -11 -15 -8 -7 -18 -10 -9 -19 -8 -6 -13 -17 -11 -9 -18 -10 -11 -20 -10 -7 -14 -19 -13 -10 -20 -13 -14 -23 -13 -9 -17 -22 -16 -13 -22 -15 -15 -24 -15 -13 -19 -24 -17 -14 -23 -16 -17 -25 -15 -12 -19 -24 -17 -15 -24 -16 -16 -25 -15 -12 -20 -24 -18 -15 -24 -16 -16 -24 -15 -12 -19 -24 -17 -14 -24 -16 -16 -24 -15 -12 -19 -24 -17 -15 -25 -18 -18 -27 -17 -15 -21 -26 -19 -17 -26 -19 -19 -28 -18 -16 -22 -27 -20 -18 -28 -20 -20 -29 -18 -16 -22 -27 -21 -19 -27 -19 -19 -27 -18 -15 -22 -25 -18 -16 -24 -14 -12 -21 -10 -8 -16 -17 -10 -10 -23 -16 -17 -26 -18 -16 -24 -29 -22 -21 -31 -24 -26 -36 -25 -22 -30 -34 -28 -26 -35 -25 -26 -37 -28 -27 -35 -39 -32 -30 -39 -31 -30 -39 -30 -27 -35 -38 -31 -29 -38 -29 -29 -37 -28 -25 -31 -35 -28 -26 -36 -26 -26 -35 -25 -21 -27 -25 -10 1 3 22 34 35 57 77 77 72 72 76 74 93 98 79 59 16 -40 -78 -96 -131 -180 -186 -176 -165 -134 -112 -101 -86 -64 -50 -49 -34 -28 -31 -17 -9 -11 -12 -3 1 -7 1 1 -8 1 5 1 -2 7 11 3 10 10 2 11 14 9 7 16 19 11 19 18 10 20 22 18 15 23 27 18 27 29 19 28 31 26 23 32 37 28 37 37 28 38 44 39 36 46 50 43 52 52 44 55 60 55 53 63 68 60 70 71 63 74 79 76 74 84 89 83 92 94 87 98 104 100 100 109 114 107 118 119 111 121 126 121 118 127 130 122 129 128 118 127 128 120 115 121 121 109 114 109 96 101 99 87 79 81 79 63 64 58 41 45 44 32 24 26 25 12 16 12 -1 6 5 -3 -8 -2 -2 -12 -7 -8 -18 -10 -9 -15 -19 -14 -11 -21 -13 -14 -23 -14 -12 -19 -21 -14 -12 -21 -13 -14 -23 -15 -13 -19 -22 -14 -11 -20 -12 -13 -22 -14 -11 -17 -21 -13 -10 -19 -11 -12 -21 -12 -8 -14 -17 -10 -9 -17 -9 -10 -20 -10 -7 -14 -17 -9 -7 -16 -8 -10 -19 -10 -7 -13 -17 -11 -8 -17 -9 -9 -19 -10 -8 -14 -18 -11 -9 -19 -10 -11 -22 -12 -11 -17 -20 -13 -11 -21 -13 -14 -24 -15 -13 -20 -24 -17 -14 -23 -15 -17 -26 -18 -15 -21 -25 -18 -15 -24 -16 -17 -27 -19 -17 -22 -25 -19 -16 -26 -19 -20 -29 -20 -18 -23 -28 -21 -18 -26 -18 -21 -30 -21 -19 -24 -29 -22 -19 -28 -19 -21 -31 -22 -19 -26 -29 -22 -19 -28 -21 -21 -30 -21 -19 -25 -30 -22 -19 -28 -21 -22 -31 -22 -20 -26 -30 -23 -20 -29 -22 -23 -32 -23 -21 -26 -28 -21 -20 -29 -21 -22 -31 -22 -20 -26 -28 -20 -18 -27 -20 -20 -28 -19 -15 -21 -24 -17 -15 -23 -13 -13 -21 -10 -7 -13 -16 -8 -5 -14 -9 -12 -23 -14 -11 -18 -21 -16 -14 -24 -17 -18 -29 -22 -19 -25 -29 -22 -19 -28 -21 -21 -29 -21 -20 -27 -32 -26 -24 -32 -24 -25 -35 -24 -22 -29 -32 -24 -21 -30 -23 -23 -32 -23 -20 -27 -30 -24 -20 -29 -21 -21 -31 -22 -20 -26 -28 -21 -16 -20 -5 2 2 23 37 42 52 76 90 83 86 84 81 102 110 99 70 31 -14 -62 -79 -115 -166 -178 -170 -158 -141 -114 -92 -84 -61 -48 -47 -29 -21 -21 -20 -9 -1 -6 3 4 -3 6 7 1 -3 4 9 2 12 12 4 14 16 10 6 14 17 10 20 20 12 21 23 16 13 21 24 17 24 26 17 28 30 23 20 27 31 25 33 34 26 36 39 34 31 40 43 37 46 47 40 51 53 48 46 54 60 55 62 64 56 67 71 66 64 74 79 72 83 85 78 89 93 89 88 97 103 96 107 110 103 114 117 112 110 119 123 115 125 125 117 127 128 121 116 122 124 114 121 119 107 113 111 101 93 95 93 80 83 78 63 66 63 50 41 41 39 27 29 26 13 18 16 4 0 5 6 -4 1 -2 -11 -3 
              
            
          


心电图的话首先想到的是绘制表格

其实看不懂这玩意,不知道是个啥,网上搜的是一个小格子是0.04s,就是按照这个情况来搞;每一家的心电图都不一样,我们这边有两种,我先绘制其中一种;

少废话,先上代码

继承view就不说了

  CardiogramView extends View

绘制表格

    //横向 60 * 5 个格子 每个格子 0.04s 绘制120s
    private int cardiogramTime = 12000;//心电图的时间  毫秒
    private int gridSize = 14;//水平大格子数量
    private int gridHeight = 6;//格子的高度

  //计算需要绘制宽度
    private int horizontalSize = gridSize * 5 + 1; //水平线的个数
    private int verticalSize = getVerticalSize(cardiogramTime);//垂直线的个数

    private int gridColor = Color.parseColor("#FFAF60");//格子的颜色
    private int cardiogramColor = Color.parseColor("#1b4200");//波形图颜色

    /**
     * 绘制格子
     */
    private void drawGrid(Canvas canvas){

        float gridWidth = (verticalSize - 1) * gridHeight;
        DashPathEffect dashPathEffect1 = new DashPathEffect(new float[]{1f, 0f}, 0);
        DashPathEffect dashPathEffect2 =  new DashPathEffect(new float[]{1f,1f},0);
        Path path = new Path();

        //横向的线条
        for (int i = 0; i < horizontalSize; i++) {
            path.reset();
            path.moveTo(0, i * gridHeight);
            path.lineTo(gridWidth, i * gridHeight);
            if (i == 0 || i % 5 == 0){
                //实线
                gridPaint.setPathEffect(dashPathEffect1);
            }else {
                //虚线
                gridPaint.setPathEffect(dashPathEffect2);
            }
            canvas.drawPath(path,gridPaint);
        }

        //竖排的线
        for (int i = 0; i < verticalSize; i++) {
            path.reset();
            path.moveTo(i * gridHeight, 0);
            path.lineTo(i * gridHeight, (horizontalSize - 1) * gridHeight);
            if (i == 0 || i % 5 == 0){
                //实线
                gridPaint.setPathEffect(dashPathEffect1);
            }else {
                //虚线
                gridPaint.setPathEffect(dashPathEffect2);
            }
            canvas.drawPath(path,gridPaint);
        }
    }

绘制表格,我这边是绘制了两分钟长的格子,上边说了是按照一个小格子代表的0.04s;
每一秒会有一个实线,构成一个大格子,后面上效果图;

绘制心电图

根据xml中的数据和心电图样本的分析(瞎算),我们把每个格子分成了100份,对照着数据进行坐标点的计算(别说,还是像这么回事)


    private float mx = 0.324f; //心电图 x轴的偏移 //移动速度
    private int mxSize = 13; //心电图 绘制多少个格子

    /**
     * 绘制心电图
     */
    private void drawCardiogram(Canvas canvas){
        resetPaint();
        Path path = new Path();

        /**
         * MDC_ECG_LEAD_I 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_I)){
            //线绘制第一条波形  绘制在3和4条格子中
            ArrayList pqs = initList(MDC_ECG_LEAD_I, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * 2 * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 3 * 5;//y轴的0
            drawCardiogram("Ⅰ",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_AVR 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_AVR)){
            ArrayList pqs = initList(MDC_ECG_LEAD_AVR, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 3 * 5;//y轴的0
            drawCardiogram("aVR",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_V1 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_V1)){
            ArrayList pqs = initList(MDC_ECG_LEAD_V1, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize * 2 + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 3 * 5;//y轴的0
            drawCardiogram("V1",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_V4 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_V4)){
            ArrayList pqs = initList(MDC_ECG_LEAD_V4, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize * 3 + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 3 * 5;//y轴的0
            drawCardiogram("V4",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_II 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_II)){
            ArrayList pqs = initList(MDC_ECG_LEAD_II, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * 2 * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 7 * 5;//y轴的0
            drawCardiogram("ⅠⅠ",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_AVL 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_AVL)){
            ArrayList pqs = initList(MDC_ECG_LEAD_AVL, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 7 * 5;//y轴的0
            drawCardiogram("aVL",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_V2 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_V2)){
            ArrayList pqs = initList(MDC_ECG_LEAD_V2, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize * 2 + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 7 * 5;//y轴的0
            drawCardiogram("V2",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_V5 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_V5)){
            ArrayList pqs = initList(MDC_ECG_LEAD_V5, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize * 3 + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 7 * 5;//y轴的0
            drawCardiogram("V5",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_III 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_III)){
            ArrayList pqs = initList(MDC_ECG_LEAD_III, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * 2 * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 11 * 5;//y轴的0
            drawCardiogram("ⅠⅠⅠ",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_AVF 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_III)){
            ArrayList pqs = initList(MDC_ECG_LEAD_III, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 11 * 5;//y轴的0
            drawCardiogram("aVF",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_V3 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_V3)){
            ArrayList pqs = initList(MDC_ECG_LEAD_V3, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize * 2 + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 11 * 5;//y轴的0
            drawCardiogram("V3",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }

        /**
         * MDC_ECG_LEAD_V6 找出第一个格子的0,0的位置
         */
        if (!TextUtils.isEmpty(MDC_ECG_LEAD_V6)){
            ArrayList pqs = initList(MDC_ECG_LEAD_V6, gridHeight * 5);
            int LEAD_I_x_0 = gridHeight * (mxSize * 3 + 2) * 5;//x轴的0
            int LEAD_I_y_0 = gridHeight * 11 * 5;//y轴的0
            drawCardiogram("V6",pqs,canvas,LEAD_I_x_0,LEAD_I_y_0,path);
        }
    }

    /**
     * 绘制波形
     * @param pqs
     * @param canvas
     * @param x
     * @param y
     * @param path
     */
    private void drawCardiogram(String title,ArrayList pqs,Canvas canvas
            ,float x,float y,Path path){
        //绘制文字
        canvas.drawText(title,x,y - 3 * gridHeight,gridPaint);
        //绘制波形
        for (int i = 0; i < pqs.size(); i++) {
            if (i == pqs.size() - 1) {
                break; //最后一点不绘制
            }
            path.reset();
            path.moveTo(x + (mx * i), y - pqs.get(i));
            path.lineTo( x + (mx * (i + 1)),y - pqs.get(i + 1));
            canvas.drawPath(path,gridPaint);
        }
    }

/**
     * 计算每一个点的位置
     * @param str 需要转换的字符串
     * @param bigGridHeight 大格子的高度
     * @return
     */
    private ArrayList initList(String str,float bigGridHeight){
        //取中间段的 每段13个大格子
        int size = (int) Math.ceil((mxSize * 5 * gridHeight) / mx);
        int rmSize = (int) Math.ceil((16 * 5 * gridHeight) / mx);
        String[] strings = str.split(" ");
        ArrayList pqs = new ArrayList<>();
        for (int i = rmSize; i < strings.length; i++) {
            float pq = (Integer.valueOf(strings[i]) * bigGridHeight) / 200 ;
            pqs.add(pq);
            if (i >  rmSize + size){//5000条数据取其中的一部分
                return pqs;
            }
        }
        return pqs;
    }

偏移量的计算我是蒙的,不知道咋计算, 就看着差不多,然后截取其中一部分数据, 我看着心电图上有数据矫正,不知道咋回事,所以就截取了其中的一部分数据计算;效果看着还行!

最后效果图(由于用在TV上,所以就这样了!)

效果图

代码基本就这些,所以就不放代码了,有做过的希望留下宝贵的意见!

你可能感兴趣的:(Android 根据心电图(ECG)数据分析绘制心电图)