【发布时间】:2015-09-02 17:41:03
【问题描述】:
我已经使用了一个示例,并且可以使用 php 和 mysql 成功读取数据并绘制它(时基与变量),一切正常。我已将其用作模板并使用了不使用时基但图形未呈现的不同数据库。该图旨在显示来自 SQL 查询的数据,该查询将变量的出现频率与 x 轴上的变量和 Y 轴上的出现频率进行比较。
图表按预期弹出 x 和 y 轴值。看起来不错;除了情节丢失。为了帮助我进行故障排除,我在屏幕上列出了数据,尽管它并不漂亮——这证明数据库被正确调用并且没有明显的 SQL 错误并且正在返回数据。
db_code`
<?php
$con = mysql_connect("localhost","root","hal9000");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("sqm", $con);
$result = mysql_query("SELECT magnitude, COUNT(*) AS xxx FROM data WHERE magnitude > 1 GROUP by magnitude");
while($row = mysql_fetch_array($result)) {
echo $row['magnitude'] . "\t" . $row['xxx']. "\n";
}
mysql_close($con);
?> `
主页面代码
<script type="text/javascript">
var chart;
$(document).ready(function() {
var options = {
chart: {
renderTo: 'common_LHS',
defaultSeriesType: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text: 'Magnitude',
x: -20 //center
},
subtitle: {
text: '',
x: -20
},
plotOptions: {
series: {
marker: {
enabled: true,
symbol: 'circle',
radius: 0
}
}
},
xAxis: {
type: 'linear',
tickWidth: 0,
gridLineWidth: 1,
labels: {
align: 'center',
x: -3,
y: 20
}
},
yAxis: {
title: {
text: 'Frequency of occurrence'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
tooltip: {
crosshairs: [{
width: 2,
color: 'red'
}, {
width: 2,
color: 'red'
}],
},
series: [{
name: 'Occurrence',
}]
}
jQuery.get('data.php', null, function(tsv) {
var lines = [];
traffic = [];
try {
// split the data return into lines and parse them
tsv = tsv.split(/\n/g);
jQuery.each(tsv, function(i, line) {
line = line.split(/\t/);
traffic.push ([
parseFloat(line[0]), //need to parseFloat to convert data to float from string
parseFloat(line[1])
]);
});
} catch (e) { }
options.series[0].data = traffic;
chart = new Highcharts.Chart(options);
});
});
当在 LibreCalc 中绘制数据时,数据看起来与我预期的一样,除了没有渲染的线之外,它几乎在 Highcharts 中完成。
感谢任何建议。不幸的是,由于我是这个论坛的新手,所以我无法提交图片,但如果有帮助,我很乐意将它们发送给某人。
希望它很简单,通常是:)
【问题讨论】:
-
traffic是否包含项目?尝试在您的options.series[0]定义中设置data: []您设置name: 'Occurance'的位置。 -
您的数据是否正确排序?我的意思是,
traffic是按照line[0]的升序构建的? -
数据是通过 MySQL 排序的,有 1557 个唯一点要绘制,但是我的有效日期时间图有 18000 个,所以这不是很努力。我是新手,非常感谢您的意见。我假设您的意思是 series: [{ name: 'Occurrence', data: [ ] ]} 如果是这样,它没有任何区别。
标签: mysql highcharts