highchart - 在x轴中显示值作为我从图表数据中获得的值,而不是转换

时间:2017-02-28 19:31:17

标签: javascript highcharts

我想获取数据并显示它的x值,因为我得到的是我想要显示的内容,有些时候我不知道图表上传时的数据(我从服务器上获取了一段时间后)

问题高图显示xaxis中的值为datetime,

附加jsfiddle在xaxis中我不想要任何转换我想要显示值为" 08:00" " 09:00"等等..

https://jsfiddle.net/4scqnpy5/

Highchart将其转换为00:00:00:001 00:00:00:002 00:00:00:003

Highcharts.stockChart(' container',{

    scrollbar: {
        barBackgroundColor: 'gray',
        barBorderRadius: 7,
        barBorderWidth: 0,
        buttonBackgroundColor: 'gray',
        buttonBorderWidth: 0,
        buttonArrowColor: 'yellow',
        buttonBorderRadius: 7,
        rifleColor: 'yellow',
        trackBackgroundColor: 'white',
        trackBorderWidth: 1,
        trackBorderColor: 'silver',
        trackBorderRadius: 7
    },
    navigation: {
        buttonOptions: {
            enabled: false
        }
    },
    navigator: {
        enabled: false
    },
    rangeSelector: {
        selected: 1
    },

    series: [{
        name: 'hours',
        data: [
            ["New York", 100],
            ["09:00", 200],
            ["Pariz", 300],
            ["1100", 150]
        ]
    }]
});

2 个答案:

答案 0 :(得分:1)

我认为这应该代表时间?如果是这样,您需要使用Date.UTC()

将数据格式化为Date对象



 Highcharts.stockChart('container', {

        scrollbar: {
            barBackgroundColor: 'gray',
            barBorderRadius: 7,
            barBorderWidth: 0,
            buttonBackgroundColor: 'gray',
            buttonBorderWidth: 0,
            buttonArrowColor: 'yellow',
            buttonBorderRadius: 7,
            rifleColor: 'yellow',
            trackBackgroundColor: 'white',
            trackBorderWidth: 1,
            trackBorderColor: 'silver',
            trackBorderRadius: 7
        },
        navigation: {
            buttonOptions: {
                enabled: false
            }
        },
        navigator: {
            enabled: false
        },
        rangeSelector: {
            selected: 1
        },

        series: [{
            name: 'hours',
            data: [
              [Date.UTC(0, 0, 0, 8, 00), 100], 
              [Date.UTC(0, 0, 0, 9, 00), 200], 
              [Date.UTC(0, 0, 0, 10, 00), 300],
              [Date.UTC(0, 0, 0, 11, 00), 150]
            ]
        }]
    });

<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<div id="container" style="height: 900px; min-width: 600px"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

解决方案是使用:chart.xAxis [0] .setCategories 如下:

var objData2 = [30, 40, 50, 60, 70, 80, 90, 148.5, 216.4, 194.1, 95.6, 54.4];

            Highcharts.stockChart(wrappedResult[0], options, function(chart){
                $scope._chart = chart;
                $scope._chart.xAxis[0].setCategories(['One', 'Two', 'Three', 'four', 'five' , 'six', 'seven']);
                //test
                $scope._chart.addSeries({
                    color: 'red',
                    data: _.cloneDeep(objData2)
                });

            });