1

我正在使用示例中所示的 highcharts,但由于某种原因,它完全不喜欢我的数据。我看到结果的唯一一次是当我缩小到全部然后它只显示一个点。关于我做错了什么的任何线索将不胜感激。

我如何获取我的数据:

$jsResult = array();
$arResults = $wpdb->get_results("SELECT tsDay, nPrice FROM sometable", ARRAY_A);

    foreach($arResults as $key => $val){

        //$val['nPrice'] = floatval($val['nPrice']);

        //$jsResult[$key][0] = ($val['tsDay']*1000);
        //$jsResult[$key][1] = intval($val['nPrice']);

        //$strDate = date("Y/m/d", $val['tsDay']);
        //$strDate = explode('/', $strDate);

        $jsResult[$val['tsDay']] = '['.($val['tsDay']*1000).', '.$val['nPrice'].']';
    }

    $jsResult = "[\n".implode(",\n", $jsResult)."\n]";
    ?>

图表:

$(document).ready(function() {

    var data = <?php echo $jsResult; ?>;

    // create the chart
    window.chart = new Highcharts.StockChart({
        chart : {
            renderTo : 'graph',
            zoomType: 'x'
        },

        navigator : {
            series : {
                data : data
            }
        },

        rangeSelector : {
            selected : 5 // All
        },

        tooltip: {
            xDateFormat: '%Y-%m-%d %H:%M:%S'
        },

        xAxis : {
            ordinal: true
        },

        series : [{
            //type: 'candlestick',
            name : 'data',
            data : data,
            dataGrouping : {
                enabled : false
            },
            marker: {
                enabled: true,
                radius: 2
            }
        }]
    });

来自 Highcharts 的样本数据绘制得很好:

[1121212800000,38.35],
[1121299200000,40.75],
[1121385600000,41.55],
[1121644800000,41.49],
[1121731200000,43.19],
[1121817600000,43.63],
[1121904000000,43.29],
[1121990400000,44.00],
[1122249600000,43.81],
[1122336000000,43.63],
[1122422400000,43.99],
[1122508800000,43.80],
[1122595200000,42.65],

我的数据样本:

[1339736400000,1627.25],
[1339650000000,1613.50],
[1339563600000,1619.50],
[1339477200000,1603.50],
[1339390800000,1584.00],
[1339131600000,1576.50],
[1339045200000,1606.00],
[1338958800000,1635.00],
[1338526800000,1606.00],
[1338440400000,1558.00],
[1338354000000,1540.00],
[1338267600000,1579.50],
[1337922000000,1569.50], 
4

1 回答 1

1

这是您的图表有什么问题,您的数组会随着时间从 6 月 15 日开始,然后是 14 ,13 等等

如果你使用reverse()你会得到一个看起来像这样的数组

    var data = [ [1337922000000,1569.50], [1338267600000,1579.50] ,
                 [1338354000000,1540.00],[1338440400000,1558.00],
                 [1338526800000,1606.00],
                 [1338958800000,1635.00],[1339045200000,1606.00],
                 [1339131600000,1576.50],[1339390800000,1584.00],
                 [1339477200000,1603.50],[1339563600000,1619.50],]

这将使您的图表正常工作这是一个有效的jsFiddle

于 2012-07-06T15:49:20.330 回答