Highcharts - 在饼图中为一个楔子放置样式和改变样式的位置

时间:2013-02-04 16:59:49

标签: css styles highcharts pie-chart

我在这里有一张Highcharts饼图:http://jsfiddle.net/6PbbR/52/

$(function () {

    var chart;
    $(document).ready(function() {

      // Radialize the colors
    Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {
        return {
            radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
            stops: [
                [0, color]
            ]
        };
    });

    // Build the chart
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false,
                shadow: true,
                    },
            tooltip: {
                enabled: false
            },
            title: {
                text: ""
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    size:'68%',
                    cursor: 'pointer',
                    shadow: true,
                    dataLabels: {
                        enabled: true,
                        distance: -40,
                        style: {
                        width: '100px'
                    },
                        color: '#fff',
                        connectorColor: '#000000',
                        formatter: function() {
                            return '<b style="font-family:arial;font-size:10px;font-weight:bold">'+ this.point.name +'</b> ';
                        }
                    }
                }
            },
            series: [{
                type: 'pie',
                 name: 'Income Investments',
                data: [
                     ['FLOATING RATE FUNDS',   16.667],
                    {
                        name: 'Corporate Capital Trust',
                        y: 16.667,
                        sliced: true,
                        selected: true
                    },                                     
                    ['BONDS',   16.667],
                    ['ANNUITIES',       16.667],
                    ['REITs',    16.667],
                    ['CDs',     16.667]
                ]
            }],

        colors: [
                     '#83a3c6',
                      '#98012e', 
                    '#19699b', 
                    '#ae9e8e', 
                    '#5283b0', 
                    '#958370'
                      ],
        });
    });

});

两个问题:

1)我对如何在plotOptions中插入内联样式感到满意{pie {formatter。哪个更好的地方使用API​​,而不是强制内联样式?

2)我想更改红色楔形的字体系列(并可能调整其定位/边距)。这样做的最佳方式是什么?

编辑:理想情况下,我可以完成我的需求,而无需超出上述功能。是否可以使用API​​将样式附加到一个数据点?

1 个答案:

答案 0 :(得分:1)

这是一个简单的html,因此您可以添加classid,然后使用css设置样式。

JS

formatter: function() {
    return '<b id="myTooltipId">'+ this.point.name +'</b> ';
}

CSS

#myTooltipId {
    font-family: arial;
    font-size: 10px;
    font-weight:bold
}

<强>更新

在内部格式化程序中,您可以使用this获取切片属性 所以你只需要检查切片是否是你想要的切片。

formatter: function() {
    // key is the slice name
    if (this.key == 'CDs') {
        return '<b id="myTooltipId">'+ this.point.name +'</b> ';
    } else {
        return this.value;
    }
}