在javascripts

时间:2015-11-12 22:34:26

标签: javascript highcharts

我有三个来自js中json字典的数组:

var a=[]
var b=[]
var c=[]
var d = JSON.parse('{{ dictionary | safe}}');
for (var key in d)  {  
    b.push(d[key]['score']);
    a.push(key);
    c.push(d[key]['text']);
}

我设法使用highchat这样的图表:

 $('#container0').highcharts({
            title: {
                text: 'Daily News {{ name }}',
                x: -20 
            },
            subtitle: {
                text: 'Source: News.',
                x: -20
            },
            xAxis: {
                categories: a
            },
            yAxis: {
                title: {
                    text: 'Scores'
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: colors[3]
                }]
            },
        series: [{
                allowPointSelect: true,
                name: 'news score',
                data: b,
                color: colors[2]
            }]
        });

当我鼠标悬停/点击每个品脱时,我得到了值。我想修改它以显示数组c的值。我尝试了很多方法但没有任何效果。我很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

可以通过为数据点设置属性name来设置点的名称。它可以按照enter image description here中的说明完成,因此每个点都是具有name属性的对象,如:

    series: [{
        data: [{
            name: 'Point 1',
            y: 1
        }, 
        ...

在你的情况下,数组[nameString, value]也可以。

    series: [{
        data: [
            ['Point 1', 1],
            ...

JSFiddle:API reference

因此,对于您的代码,您可以使用以下内容:

var a=[]
var b=[]
var d = JSON.parse('{{ dictionary | safe}}');
for (var key in d)  {  
    b.push([d[key]['text'], d[key]['score']]);
    a.push(key);
}

以后使用b作为系列数据。

要设置工具提示的文本,您可以使用API​​中提供的众多格式化功能之一 - 例如http://jsfiddle.net/fnmncx6h/headerFormat