1

我正在将 GWT api 用于谷歌图表并遇到一些问题:

  • 柱形图缺少起始值和结束值的列

聚集柱形图

  • 条形图宽度被修剪为第一个/最后一个值的一半

堆积条形图

为了解决这个问题,我尝试了 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;
    }
4

1 回答 1

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);

希望能帮助到你。我只是收集分散的解决方案。

于 2012-10-17T13:01:12.240 回答