canvas绘制心电图(js读取csv心电数据文件)
时间: 2023-08-10 19:23:35 浏览: 234
好的,以下是一个简单的示例代码,演示如何使用 Canvas 和 JavaScript 读取和绘制 CSV 格式的心电图数据。
HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Canvas 绘制心电图</title>
<meta charset="utf-8">
</head>
<body>
<canvas id="ecg_canvas" width="800" height="400"></canvas>
<script src="ecg.js"></script>
</body>
</html>
```
JavaScript 代码(ecg.js):
```javascript
// 读取 CSV 格式的心电图数据
function loadECGData(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var lines = xhr.responseText.split('\n');
var data = [];
for (var i = 0; i < lines.length; i++) {
var values = lines[i].split(',');
if (values.length === 2) {
data.push({
x: parseFloat(values[0]),
y: parseFloat(values[1])
});
}
}
callback(data);
}
};
xhr.open('GET', url, true);
xhr.send();
}
// 绘制心电图
function drawECG(canvas, data) {
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.moveTo(data[0].x, canvas.height / 2 - data[0].y);
for (var i = 1; i < data.length; i++) {
ctx.lineTo(data[i].x, canvas.height / 2 - data[i].y);
}
ctx.strokeStyle = '#000';
ctx.lineWidth = 1;
ctx.stroke();
}
// 加载数据并绘制心电图
loadECGData('ecg.csv', function(data) {
drawECG(document.getElementById('ecg_canvas'), data);
});
```
在这个示例中,我们首先定义了一个 `loadECGData` 函数,用于读取 CSV 格式的心电图数据。该函数使用 XMLHttpRequest 对象发送异步 HTTP 请求,读取指定 URL 的文件内容,解析 CSV 格式的数据,并以数组形式传递给回调函数 `callback`。
接下来,我们定义了一个 `drawECG` 函数,用于绘制心电图。该函数接受两个参数:Canvas 元素和心电图数据。在函数中,我们首先清除 Canvas 上的任何现有内容,然后使用 `moveTo` 和 `lineTo` 方法绘制心电图线条,并使用 `strokeStyle` 和 `lineWidth` 属性设置线条颜色和宽度。
最后,我们调用 `loadECGData` 函数,并将数据传递给 `drawECG` 函数,以绘制心电图。请注意,我们将 JavaScript 代码保存在名为 `ecg.js` 的文件中,并在 HTML 文件中使用 `<script>` 标签引用它。
请确保在本地服务器上运行此示例,否则可能会遇到跨域访问的问题。
阅读全文