GWT Highcharts - 半圈甜甜圈

时间:2014-10-08 15:30:54

标签: java javascript gwt highcharts

我正在使用GWT Highcharts并希望创建Semi circle donut(http://www.highcharts.com/demo/pie-semi-circle)。这是通过javascript与plotOptions.pie.startAngleplotOptions.pie.endAngle完成的。在GWT Highcharts中似乎没有相关的方法。然后我尝试使用.setOption("/plotOptions/pie/endAngle", "90")手动设置它,但这没有任何效果。也许这不支持HighStock 1.2.4(GWT Highcharts支持的最新版本)?

我的代码如下所示:

final Chart chart = new Chart()
.setType(Series.Type.PIE)
.setChartTitleText("Browser market shares at a specific website, 2010")
.setPlotBackgroundColor((String) null)
.setPlotBorderWidth(null)

.setPlotShadow(false)
.setOption("/plotOptions/pie/startAngle", "-90")
.setOption("/plotOptions/pie/endAngle", "90")
.setPiePlotOptions(new PiePlotOptions()

    .setAllowPointSelect(true)
    .setCursor(PlotOptions.Cursor.POINTER)
    .setPieDataLabels(new PieDataLabels()
        .setConnectorColor("#000000")
        .setEnabled(true)
        .setColor("#000000")
        .setFormatter(new DataLabelsFormatter() {
            @Override
            public String format(DataLabelsData dataLabelsData) {
                return "<b>" + dataLabelsData.getPointName() + "</b>: " + dataLabelsData.getYAsDouble() + " %";
            }
        })
    )
)
.setLegend(new Legend()
    .setLayout(Legend.Layout.VERTICAL)
    .setAlign(Legend.Align.RIGHT)
    .setVerticalAlign(Legend.VerticalAlign.TOP)
    .setX(-100)
    .setY(100)
    .setFloating(true)
    .setBorderWidth(1)
    .setBackgroundColor("#FFFFFF")
    .setShadow(true)
)
.setToolTip(new ToolTip()
    .setFormatter(new ToolTipFormatter() {
        @Override
        public String format(ToolTipData toolTipData) {
            return "<b>" + toolTipData.getPointName() + "</b>: " + toolTipData.getYAsDouble() + " %";
        }
    })
);

工作javscript看起来像这样:

$(function () {
    $('#container').highcharts({
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: 0,
            plotShadow: false
        },
        title: {
            text: 'Browser<br>shares',
            align: 'center',
            verticalAlign: 'middle',
            y: 50
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                dataLabels: {
                    enabled: true,
                    distance: -50,
                    style: {
                        fontWeight: 'bold',
                        color: 'white',
                        textShadow: '0px 1px 2px black'
                    }
                },
                startAngle: -90,
                endAngle: 90,
                center: ['50%', '75%']
            }
        },
        series: [{
            type: 'pie',
            name: 'Browser share',
            innerSize: '50%',
            data: [
                ['Firefox',   45.0],
                ['IE',       26.8],
                ['Chrome', 12.8],
                ['Safari',    8.5],
                ['Opera',     6.2],
                {
                    name: 'Others',
                    y: 0.7,
                    dataLabels: {
                        enabled: false
                    }
                }
            ]
        }]
    });
});

有没有办法让这个与GWT Highcharts合作?

1 个答案:

答案 0 :(得分:0)

根据docs,我认为这可能是Highcharts版本的问题 - 它得到了2.3.4的支持。那么,没有2.3.4版本,应该有2.3.5。

Highstock 1.2.4是Highcharts 2.3.3和2.3.5之间发布的版本。有没有什么可以将Highstock更新到1.2.5?在1.2.5中,它肯定得到了支持。