使用 CSV 文件预处理高图表数据
Preprocess Highchart data using CSV file
我想使用CSV文件预处理数据。加载页面后,要求浏览 CSV 文件,然后将其预处理到页面。我正在使用这个图表。如果您帮助我度过难关,我将不胜感激。我只知道HTML + CSS基础知识,不知道如何把它放在一起。
如果桌面上有数据,则可以尝试以下解决方案作为基础:
1. 使用 jQuery-csv 的解决方案.js
您可以使用不同的 CSV 解析库来执行此操作。为此,请向页面添加控件并添加 loadFile() 函数,如下例所示:
<input id="readfile" type="file" onchange="loadFile(event)"/>
<script>
function loadFile(event) {
var files = event.target.files;
var reader = new FileReader();
var name = files[0].name;
reader.onload = function(e) {
var data = e.target.result;
processCSV(data);
};
reader.readAsText(files[0]);
};
function processCSV(data) {
// 1. Convert CSV text from "data" parameter to JSON
var arr = $.csv.toArray(data);
// 2. Prepare chart from "arr" array
};
</script>
2. 使用 Alasql 的解决方案.js
使用Alasql.js库的替代解决方案(它包括文件上传和CSV解析功能):
<input id="readfile" type="file" onchange="loadFile(event)"/>
<script>
function loadFile(event) {
alasql('SELECT * FROM FILE(?,{headers:true})', [event],function(data){
// Process your data
});
);
</script>
这里:
- 您需要在页面中创建按钮以选择 CSV。
- 向此按钮添加事件函数并将"事件"作为参数传递(示例中的loadFile(event)
- 将此事件作为参数传递给加载函数(示例中的 FILE() 或 CSV() 或 XLSX()。
- 处理结果数据并为高图表做好准备。
您可以使用下面的Highcharts运行工作片段。在准备图表之前.csv从代码段的末尾(手动)创建文件演示并将其保存到桌面。
(免责声明:我是 Alasql 库的作者)
function loadFile(event) {
alasql('SELECT * FROM FILE(?,{headers:true})',[event],function(data){
// Process your data here
var myseries = [];
Object.keys(data[0]).forEach(function(key){
var ds = data.map(function(d){ return +d[key];});
myseries.push({name:key,data:ds});
});
// Prepare data for Hightcharts.js
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
xAxis: {
categories: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
]
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: myseries
});
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://alasql.org/console/alasql.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<p>Select CSV file to read</p>
<input id="readfile" type="file" onchange="loadFile(event)"/>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<h3>Sample file demo.csv</h3>
<pre>
Paris, London
111,211
321,411
512,611
710,811
1121,222
300,422
500,622
700,822
100,222
300,422
511,622
711,811
</pre>
据我了解,您可以使用此方案
1)运行网站和呼叫上传功能
2) 将文件保存在您的服务器上
3) 通过 $.get() 加载 CSV 并解析值以创建系列对象
4) 初始化图表
相关文章:
- 如何访问高图表工具提示中的任何特定数据
- 高图表数据导入 JSON - 格式
- 高图表不显示来自csv文件的数据
- 高图表数据标签重叠
- 删除高图表数据标签上的阴影/背景发光
- 如何在高图表中设置动态数据
- 将不同的符号添加到具有动态数据的高图表中
- 使用节点下载高图表数据,但不在浏览器中显示
- 使用laravel和ajax加载高图表数据
- 在高图表中按类别对子体数据进行排序
- 动态显示实时高图表数据,无需警报
- 使用 CSV 文件预处理高图表数据
- 在高图表数据中使用字符串
- 在没有解析 JSON 的情况下获取高图表数据
- 高图表数据减少一天
- 高图表数据集数组
- 如何使用十字准线在 x 轴上设置高图表数据系列
- 如何组合高图表数据
- 动态填充高图表数据
- 高图表:数据更新后,同步图表不再同步