这个问题是部分优秀和图表问题和部分编程问题。
我使用PHPExcel将图表数据从Excel工作表转换为json。然后我使用这个json将它的数据转换为与高图兼容的数据源。
到目前为止,PHPExcel的图表存储有三种不同的数据类型,标签,类别和值。据我所知,值是图表中的数据,而类别是x轴点。
但是,从excel导出散点图(xy)时,类别和值似乎会被翻转。值是一个数组,其中每个子元素包含与其兄弟元素相同的数据。 (产生不正确的图表),而现在类别的价值不同。
所以其他图表会产生如下数据:
{
"data": [{
"label": "V3",
"category": "T4:T43",
"value": "V4:V43"
}, {
"label": "W3",
"category": "T4:T43",
"value": "W4:W43",
}
],
"type": "column"
}
散点图会产生。
{
"title": "",
"data": [{
"label": "AC1",
"category": "A$2:AC98",
"value": "AB2:AB98"
}, {
"label": "AD1"
"category": "AD2:AD98"
"value": "AB2:AB98"
}, {
"label": "AE1",
"category": "AE2:AE98",
"value": "AB2:AB98"
}
],
"type": "scatter"
}
注意类别和值键中的差异和相等性。
在柱形图数据中,数据之间的“值”不同。但是类别相同。
在散点图数据中,类别在数据集之间是不同的,但值相等,是柱形图的对话。
那么这里发生了什么?
是否以这种方式定义了散点图,我需要采取必要的措施来转换这些数据?或者这是PHPExcel中的错误?
解决方案是什么?当“类型”是“分散”时,简单地将“值”与“类别”交换?
非常感谢对此的任何见解!
答案 0 :(得分:1)
我建议熟悉图表配置,它应该是什么样子。类别应放在xAxis http://api.highcharts.com/highcharts#xAxis.categories中。
除此之外,您还可以使用CSV文件获取数据值(http://docs.highcharts.com/#preprocessing)
重要的是,值应该是数字类型,而不是字符串。
答案 1 :(得分:0)
我的解决方案是预处理数据,将“值”键转换为类别数据集,将“类别”转换为数据集。然后我继续将图表配置为inverted: true