javascript - HighCharts pointRange chop 宽度。这是 HighCharts 的错误还是我遗漏了什么?

标签 javascript highcharts

我有一个结合了样条线和柱形图的 HighCharts 图表。列数据定义单个 Y 值(指示单个列),并使用 pointRange 指示单个列覆盖的 X 值范围。只要 pointRange 小于样条线数据中的最大 X 值,一切都会正常工作。但是,当 pointRange 大于样条数据中的最大 X 值时,HighCharts 会从根本上 chop 点范围,例如从我想要的 10,000 到大约 4200,大约是最大 X 值的一半。标签也从根本上向左移动,就好像该列对于小于 0 的 X 值具有显着范围,而这在我传递的数据中不存在。

(我想发布问题的快照,但我的声誉不够。)

这是 HighCharts 错误,还是我在这里遗漏了什么?贝叶斯当然建议后者,但我无法弥补我所遗漏的东西。因此向 stackoverflow 之神提出这个请求。

这是一个说明我的问题的 fiddle :http://jsfiddle.net/Bridgeland/UVF4P/1/如果将 pointRange 从 10000 更改为 8000,您可以看到我预期的结果,尽管列稍小一些。

这是我的代码,为简洁起见,省略了大部分数据:

$(function () {
    $('#container').highcharts({
        title: {
            text: 'pointRange is too small'
        },
        yAxis: {
            min: 0,
            max: 1
        },
        xAxis: {
            min: 0
        },
        legend: {
            enabled: false
        },
        credits: {
            enabled: false
        },
        series: [{
            data: [
                [0, 1],
                [215, 1],
                // middle of spline data omitted for brevity
                [8189, 0.007198560287942413],
                [8404, 0],
                [8620, 0]
            ],
            type: 'spline',
            marker: {
                enabled: false
            },
            zIndex: 1
        }, {
            data: [0.5],
            type: 'column',
            pointInterval: 10000,
            pointPadding: 0.01,
            groupPadding: 0,
            borderWidth: 0,
            shadow: false,
            pointPlacement: 'between',
            pointRange: 10000,
            zIndex: 0,
            minPointLength: 3,
            dataLabels: {
                enabled: true,
                inside: true,
                color: 'white',
                formatter: function () {
                    return 'Misplaced'
                }
            }
        }]
    })
})

(您可能想知道为什么我有一个只有单柱的柱形图?我的图表通常有更多的柱。单柱是特定数据组合的病态情况。但尽管有病态,我仍然希望才能正确显示。)

最佳答案

Highcharts 似乎不允许 pointRange 大于 x 中的最大值或 minRange 值。

您可以通过执行以下操作来解决此问题:

$(function () {
    $('#container').highcharts({
        title: {
            text: 'pointRange is too small'
        },
        yAxis: {
            min: 0,
            max: 1
        },
        xAxis: {
            min: 0,
            minRange: 10000
          //^^^^^^^^^^^
        },
        legend: {
            enabled: false
        },
        credits: {
            enabled: false
        },
        series: [{
            data: [
                [0, 1],
                [215, 1],
                // middle of spline data omitted for brevity
                [8189, 0.007198560287942413],
                [8404, 0],
                [8620, 0]
            ],
            type: 'spline',
            marker: {
                enabled: false
            },
            zIndex: 1
        }, {
            data: [0.5],
            type: 'column',
            pointInterval: 10000,
            pointPadding: 0.01,
            groupPadding: 0,
            borderWidth: 0,
            shadow: false,
            pointPlacement: 'between',
            pointRange: 10000,
            zIndex: 0,
            minPointLength: 3,
            dataLabels: {
                enabled: true,
                inside: true,
                color: 'white',
                formatter: function () {
                    return 'Misplaced'
                }
            }
        }]
    })
})

既然您将 pointInterval 设置为 10000,我认为您可以对 minRange 值执行相同的操作?

关于javascript - HighCharts pointRange chop 宽度。这是 HighCharts 的错误还是我遗漏了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17477519/

相关文章:

javascript - Highcharts 导出图表 PDF 未显示所有类别

javascript - 查询 foreach 循环内按钮的单击事件

javascript - 在 asp.net 背后的代码中获取 bootstrap dateTimePicker 值

javascript - Internet Explorer 无法识别脚本标记中的 jquery

javascript - 如何将两个不同的图表并排放置?

javascript - 在 Jquery 中创建图表时选择的 rangeSelector 不起作用

javascript - 我的表单上的 React 生成按钮不断刷新页面

javascript - 需要帮助使用超链接创建 php 和/或 javascript 以更改网页上的语言

javascript - Highcharts x 轴标签未从边界开始

javascript - 负轴值使图表出现故障