如何使 Highstocks 的 x 轴均匀且规则?

How to make a Highstocks x-axis even and regular?

我正在使用 JavaScript 的 highstocks 库来渲染作为学校项目的一部分收集的一些数据。

虽然 highstocks 已经证明很好,但 x 轴正在运行。

由于干扰,收集到的数据并不总是间隔整齐,我希望图表能反映这一点。

目前,x 轴 "jumps" 个位置。

我想要一个刻度均匀分布的规则 x 轴。

目前 ordinal 值设置为 false,我希望它能修复 x 轴。

相关设置已设置:

var baseSettings = {
    rangeSelector: {
        enabled: false
    },

    exporting: {
    enabled: false
    },

    credits: {
        enabled: false
    },

    xAxis: {
         ordinal: false
    }
};

我觉得此时我已经尝试了所有可能的设置排列 - 也许更有经验的人可以让我走上正确的道路?

问题的图片可以在这里找到: https://imgur.com/UUE50iF

可在此处找到该站点: cansat.sg.dk/graph/andoeya_droptest(link 禁用,因为我只能 post 2 links...)

代码托管在 GitHub 上,可在此处找到: https://github.com/dkkline/CanSat14-15/tree/master/presenter

问题中没有包含相关代码,但我会解决这个问题。

您正在使用 baseSettings 对象和自定义设置对象(我们称它们为 customSettings)来形成图表。使用 jQuery extend 函数合并这两个单独的设置。

你的问题是,当 baseSettingscustomSettings 都包含 xAxis 属性时,它们将不会被合并,因为你没有使用 deep 变体extend 函数。

简而言之,您目前拥有的是:

$(domIdent).highcharts('StockChart', $.extend({}, baseSettings, {
    // Custom settings
}));

而是使用这个(true 添加为 extend 的第一个参数):

$(domIdent).highcharts('StockChart', $.extend(true, {}, baseSettings, {
    // Custom settings
}));

请参阅 the jQuery API 了解有关其工作原理的详细信息,以及您当前设置无法正常工作的原因。

参数汇总:

deep

Type: Boolean

If true, the merge becomes recursive (aka. deep copy).