2

最近几天我在玩 Highcharts。

我不知道的一件事是,是否可以在图例中包含字幕来构建结果。

在我的例子中:http: //jsfiddle.net/gWEtB/

var allData={
        products: ["Product1", "Product2", "Product3", "Product4"]
    }

var colors={
        'own': ['#3B14AF', '#422C83', '#210672', '#886ED7'],
        'comp': ['#E7003E', '#AD2B4E',  '#960028',  '#F33D6E',  '#F36D91'],
        'new':  '#00CC00'}

`$(function () {
    $('#container').highcharts({
        chart: {
            type: 'column'
        },
        title: {
            text: 'Product Switching'
        },
        xAxis: {
            categories: allData.products
        },
        yAxis: {
            min: 0,
            title: {
                text: ''
            },
            labels:{ 
                format:'{value} %'
            }
        },
        tooltip: {
            pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.percentage:.0f}%</b><br/>',
            shared: false
        },
        plotOptions: {
            column: {
                stacking: 'percent',
                dataLabels: {
                    enabled: true,
                    formatter: function(){
                        return this.percentage.toFixed(2)+' %';
                    },
                    color:'#FBF5EF'
                }
            }
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'top',
            y: 30,
        },
            series: [{
            name: 'Own product1',
            data: [5, 3, 4, 7],
            color: colors.own[0]
        },
        {
            name: 'Own product2',
            data: [5, 3, 4, 7],
            color: colors.own[1]
        }, 
        {
            name: 'Own product3',
            data: [5, 3, 4, 7],
            color: colors.own[2]
        }, 
        {
            name: 'Own product4',
            data: [5, 3, 4, 7],
            color: colors.own[3]
        }, 
        {
            name: 'Competitor 1',
            data: [2, 2, 3, 2],
            color: colors.comp[0]
        },
        {   
            name: 'Competitor 2',
            data: [2, 2, 3, 2],
            color: colors.comp[1]
        },
        {
            name: 'Competitor 3',
            data: [2, 2, 3, 2],
            color: colors.comp[2]
        },
        {
            name: 'Competitor 4',
            data: [2, 2, 3, 2],
            color: colors.comp[3]
        },
        {
            name: 'Competitor 5',
            data: [2, 2, 3, 2],
            color: colors.comp[4]
        },          {
            name: 'Market Potential',
            data: [3, 4, 4, 2],
            color: colors.new
        }]
    });
});

我寻找一种以这种方式为图例添加字幕的方法:

自相残杀:
o 自有产品 1
o 自有产品 2
o 自有产品 3
o 自有产品 4

比赛:
o 竞争对手 1
o 竞争对手 2
o ...

我感谢所有帮助和信息。

谢谢

4

1 回答 1

2

您可以使用 labelFormatter http://api.highcharts.com/highcharts#legend.labelFormatter

简单示例:http: //jsfiddle.net/gWEtB/1/

labelFormatter: function() {
                switch(this.name)
                {
                    case 'Own product1':
                        return 'Cannibalization<br/>'+ this.name;
                        break;
                    case 'Competitor 1':
                        return this.name + '<br/>Competition';
                        break;
                     case 'Market Potential':
                        return this.name + '<br/>Market title';
                        break;
                    default:
                        return this.name;
                        break;
                }

            } 
于 2013-04-17T09:13:36.553 回答