如何让yAxis从特定时间开始使用高清中的条形系列?

时间:2015-06-30 22:25:39

标签: javascript datetime highcharts axis stackedbarseries

我希望条形图从特定时间开始(1.Apr)

所以我在下面的示例中实现了这个:

(jsFiddle) sample with axis right but can the bar disappear

使用以下代码

    yAxis: {
        type: 'datetime',
        min:Date.UTC(2010, 3, 1)
    },

yAxis实际上是从1.Apr开始的,但是我看不到吧。

如果我将min行注释如下

    yAxis: {
        type: 'datetime'
        //min:Date.UTC(2010, 3, 1)
    },

现在我可以看到条形图,但yAxis默认显示来自1.Jan。

任何人都可以帮助我让酒吧可见,yAxis从1.Apr开始吗?

3 个答案:

答案 0 :(得分:1)

我想我找到了你正在寻找的东西。

yAxis中有一个名为min的选项,它用于设置轴的最低值。像那样:

yAxis: {
    type: 'datetime',                      
    min: Date.UTC(2010, 3, 1)
}

希望你正在寻找什么。来自熊的吼声。

答案 1 :(得分:0)

让我解释一下datetime轴的工作原理。通常,日期时间轴基于自1970-01-01 00:00:00以来的毫秒数。这意味着,设置y: 3600 * 1000会将列从1970-01-01 00:00:00 呈现到1970-01-01 01:00:00 。您想在4月1日开始图表,但您的数据并未反映出来。换句话说,您需要提供此类信息,例如:

    series: [{
        name: 'UP',
        color: 'lime',
        data: [{
            x: 1,
            y: Date.UTC(2015, 5, 1, 1, 0, 0) // 2015-06-01 01:00:00
            // or:
            // y: 1433120400000 
            // is the same as above use for Date.UTC()
        }]
    }]

现场演示:http://jsfiddle.net/v9582phy/4/

答案 2 :(得分:0)

感谢您的回复,这有帮助。我已经将代码扩展到您的代码中,如下所示进一步增强

yAxis: {
        type: 'datetime',            
        labels: {
            formatter: function () {
                 var x=new Date(Date.UTC(2015, 3, 1)+this.value*1000*60)                     
                 return moment(x).format('MMM/DD HH:mm:ss')
            }
        }
    },

将系列数据作为

   series: [{            
        data: [{
            status:'studying',
            color: 'lime',
            x: 1,
            y: 5
        }, {
            status:'playing guitar',
            color: 'yellow',
            x: 2,
            y: 10
        }, {
            status:'exam',
            color: 'red',
            x: 2,
            y: 23
        }]
    }]

我得到了堆积的酒吧,每个酒吧呈现持续状态多少分钟

现场演示:http://jsfiddle.net/v9582phy/11/