修剪了GWT googleCharts栏

时间:2012-10-16 08:22:20

标签: gwt google-visualization

我正在使用GWT api进行谷歌排行榜并遇到一些问题:

  • 列图表中缺少的起始值和结束值的列数

Clustered ColumnChart

  • BarChart宽度裁剪为第一个/最后一个值的一半

Stacked BarChart

为了解决这个问题,我尝试了viewWindowMode属性

HorizontalAxisOptions opt = HorizontalAxisOptions.create();
opt.set("viewWindowMode","pretty");

但这不起作用。

关于如何解决的任何想法?

代码:

private Options createOptions(ChartDataProxy response) {


        Options options = Options.create();
        options.setWidth(chartPanel.getOffsetWidth() - 2 * chartBorderWidth);
        options.setHeight(chartPanel.getOffsetHeight() - 2 * chartBorderWidth);

        HorizontalAxisOptions opt = HorizontalAxisOptions.create();
        opt.setTitle(response.getxAxisName());
        opt.setSlantedText(true);
        opt.set("viewWindowMode","pretty");

        options.setHAxisOptions(opt);

        AxisOptions vopt = AxisOptions.create();
        vopt.setTitle( response.getyAxisName());
        vopt.set("viewWindowMode","pretty");

        options.setVAxisOptions(vopt);

        options.setTitle(response.getCaption() + " " + response.getSubCaption());
        options.setLegend( LegendPosition.BOTTOM );

        options.setPointSize(4);

        return options;
    }

1 个答案:

答案 0 :(得分:1)

虽然我使用的是javascript,但我遇到了类似的问题。也许,你可以将它改编成GWT。

基本上DataView可以修复它。您只需要使用DataView处理第一列,并返回不使用DataView时需要返回的内容 - 但是,作为字符串。我(不)知道,这很奇怪。

鉴于我有两列:日期,数字。我将使用这种代码:

var data = new google.visualization.DataTable();

data.addColumn('date', 'month');
data.addColumn('number', 'users');

// trick to prevent the bar chart from being cut in half at both edge of our graph
var dataView = new google.visualization.DataView(data);
dataView.setColumns([{calc: function(data, row) { return data.getFormattedValue(row, 0); }, type:'string'}, 1]);

var chart = new google.visualization.ColumnChart(document.getElementById('chart_monthly_users'));
chart.draw(dataView, options);

希望它有所帮助。我只收集分散的解决方案。