在 JS 中,我们可以通过发送请求的形式加载数据文件或数据接口,并按照一定的格式解析处理成 JS 对象并最终创建图表。
下面用示例来说明在 JS 中如何处理 CSV、XML、JSON 数据并创建图表的过程。
CSV 是以逗号分隔的数据格式,其每一行是以逗号分隔每一个数值,文件的后缀是 ,默认是用 Excel 打开的,并且 Excel 文件可以转换成 CSV 文件。
在下面的 CSV 数据例子中,第一行表示分类,后面的每一行用逗号分隔成,第一个值表示数据列名,其后是数据列的数据。
2、定义图表配置对象
var options = {
chart: {
type: 'column'
},
title: {
text: '水果消费情况'
},
xAxis: {
categories: []
},
yAxis: {
title: {
text: '单位'
}
},
series: []
};
其中 series 是一个空数组,我们将在后面 push 数据进行。
我们可以通过 jQuery.get
方法来获取 csv 文件里的数据,并在请求成功回调函数里进行解析数据;
注意不要在 jQuery.get
回调函数之前创建图表,因为该函数是异步的,只有在请求返回数据之后才会执行回调函数。
XML 是用标签标记数据,这个我们常见的 HTML 语法类似,所以我们可以用 jQuery 来解析,下面用示例说明解析过程:
1、XML 数据
data.xml 的文件内容如下:
<categories>
<item>苹果</item>
<item>梨</item>
<item>橙子</item>
</categories>
<series>
<name>小明</name>
<data>
<point>8</point>
<point>4</point>
<point>6</point>
<point>5</point>
</data>
</series>
<series>
<name>小红</name>
<data>
<point>3</point>
<point>4</point>
<point>2</point>
<point>3</point>
</data>
</series>
<series>
<name>小张</name>
<point>86</point>
<point>76</point>
<point>77</point>
</data>
</series>
<series>
<name>小芳</name>
<data>
<point>3</point>
<point>16</point>
<point>13</point>
<point>15</point>
</data>
</series>
</chart>
我们知道 Highcharts 的配置本身就是 JSON,所以 JSON 数据无需解析,只需要转换成需要的格式即可,下面是简单的示例说明:
1、JSON 文件内容
[
[1,12],
[2,5],
[3,18],
[4,13],
[5,7],
[6,4],
[7,9],
[8,10],
[9,15],