javascript - Highcharts - 在单个值上显示标记图标

标签 javascript jquery html highcharts

希望在我的 Highcharts 图表上创建单个标记,预期结果应如下所示 - http://jsfiddle.net/m1mqv4z2/

{
            x: Date.UTC(2014, 6, 31)
            y: 26.5,
            marker: {
                symbol: 'url(http://www.highcharts.com/demo/gfx/sun.png)'
            }
        },

我正在寻找要在此图表上显示的上述图标 - http://jsfiddle.net/wkaLs9ub/3/ 。因此,出于示例目的,我想将太阳图标设置为该图表的中间值。

我尝试过的方法如上面的代码片段所示,该代码嵌套在数据中,如第一个 fiddle 所示,但我没有成功。 Highcharts 的功能可以实现这一点吗?

最佳答案

正如您所指出的,您需要为您的观点设置marker.symbol。在您的数据中,它看起来像这样:

data: [
    [Date.UTC(2014, 6, 31), 0.8446],
    { x: Date.UTC(2014, 8, 18), y: 0.736, marker: { symbol: 'url(http://www.highcharts.com/demo/gfx/sun.png)' } },
    [Date.UTC(2014, 7, 01), 0.8283],
    // ...
]

详细图表的数据取决于这段代码,它填充 detailData 数组:

$.each(masterChart.series[0].data, function () {
    if (this.x >= detailStart) {
        detailData.push([this.x, this.y]);
    }
});

此处您还需要传输 marker.symbol 详细信息。您还需要包含 enabled: true 因为图表已将其整体禁用。您可以像这样更新这段代码:

$.each(masterChart.series[0].data, function () {
    if (this.x >= detailStart) {
        // If it has a symbol, include that information
        if(this.marker && this.marker.symbol) 
            detailData.push({x: this.x, y: this.y, marker: { enabled: true, symbol: this.marker.symbol }});
        // Else, just include x and y
        else
            detailData.push([this.x, this.y]);
    }
});

参见this updated JSFiddle它是如何工作的。

关于javascript - Highcharts - 在单个值上显示标记图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29165981/

相关文章:

javascript - 为什么我不能获得超过 2 个变量来处理 HTML5 Canvas 和 JavaScript?

javascript - 计算距离并在谷歌地图上显示带有航点的路线

javascript - JS数组拼接由于某种原因没有删除索引

jquery - 如何使用 id 更改动态添加元素文本?

jquery - 打开下拉菜单为窗口的 100% 高度

php - 如何使用 php 保留带有一些限制的空格?

javascript - 表单内的 <button>

JavaScript 加法/求和循环

jquery - 如何使每行中除第一列以外的列左对齐?

javascript - 使用 jQuery 粘性 DIV