javascript - highcharts 日期时间数据不适用于列类型,但适用于行

标签 javascript highcharts

我想使用带有日期时间数据的 highcharts.js 创建堆积柱形图 它适用于线型,但不适用于列型。结果 100% 持平。

我需要的是图表将显示为堆积柱。我错过了什么? 我尝试在plotOptions上使用stacked: 'normal',但仍然不起作用。

请指教,谢谢

enter image description here

我的 Highcharts 选项:

var optionsProcessTime = {
        global: {
                useUTC: false
        },
    title: {
        text: '',
        x: -20 //center
    },
    subtitle: {
        text: '',
        x: -20
    },
    xAxis: {                
            categories: [],
            labels:{
                formatter: function(){
                    return '#'+this.value;
                }
            }
    },
    yAxis: {
        title: {
            text: ''
        },
            type: 'datetime',
            dateTimeLabelFormats: {
                    millisecond: '%H:%M:%S',
                    second: '%H:%M:%S',
                    minute: '%H:%M:%S',
                    hour: '%H:%M:%S'
            },
            labels:{
                format: '{value:%H:%M:%S}'
            },
            gridLineWidth: 0
    },
    tooltip: {
        enabled: true,
            type: 'datetime',
            formatter: function(){
                return Highcharts.dateFormat('%H:%M:%S',new Date(this.y))
            }
    },
    legend: {
        enabled : false
    },
    plotOptions: {
            series: {
        pointPadding: 0.05,
        groupPadding: 0
    },
        column: {
                stacking: 'normal'
        },
            line: {
                marker: {
                    radius: 2,
                    fillColor: '#ad050b'
                },
                dashStyle: 'ShortDash',
                lineWidth: 1,
            }   
    },
    series: []
}

我的 Json 输出:

[{
    "name":"Checker",
    "data":[86,87,91,92,93,94,99,100,101]},
{
    "name":"Estimate",
    "type":"column",
    "data":[1517018400000,1517014800000,1517014800000,1517018400000,1517017200000,1517015700000,1517013900000,1517013900000,1517013900000]},
{
    "name":"Process",
    "type":"column",
    "data":[1517018400000,1517013666000,1517014800000,1517016664000,1517015107000,1517014984000,1517013604000,1517013900000,1517013900000]
}]

最佳答案

我建议禁用 yAxis.labels 的定义(仅用于调试)。您将看到原始标签并了解它是如何工作的:)

简而言之,堆叠将每个值渲染在前一个值之上,例如:1517018400000 + 1517018400000 = 3034036800000 因此它会渲染 2066 年的点。由于所有列都从零 (0) 开始,因此距离相当大:136 年。看看:http://jsfiddle.net/BlackLabel/L4Lgbvvm/45/

为什么它适用于折线图?简而言之,line 类型不像 column 那样从零开始。通过设置 series.threshold,您也可以为列获得相同的结果(不堆叠)为空:http://jsfiddle.net/BlackLabel/n1s4sqps/

堆叠怎么样?我不确定这应该如何工作..它对于列和行的工作方式相同,比较堆叠:

如果您能解释一下您认为应该如何渲染堆叠,请告诉我,也许我们可以找到一些解决方案。如果有这样的堆叠图像就太好了。

关于javascript - highcharts 日期时间数据不适用于列类型,但适用于行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48473750/

相关文章:

javascript - 主干模型上的初始化和构造函数有什么区别

javascript - 馅饼 block 太小

javascript - Angularjs - 在路由更改时刷新 Controller 范围

javascript - Highstock 图表给出 "Uncaught TypeError: Cannot read property ' addPoint' of undefined"错误

javascript - 使用 jquery 中的 click() 事件从表单更新 Highchart

javascript - Highcharts 轴填充偏移量

javascript - 在jsp页面显示mysql数据库的Highcharts数据

javascript - $.回调 : how to get length of the callback list

javascript - D3 v5 : "d" attribute in <path> tag not populating with values

javascript - 在node js中查找,如果zip文件包含任何.js或.exe或.json格式,我想阻止这些类型的上传