当前位置: 首页 > 教程 > Google Charts >

GWT Google Charts 树状图

精华
小牛编辑
176浏览
2023-03-14

TreeMap 是数据树的可视化表示,其中每个节点可能有零个或多个子节点和一个父节点(根除外)。每个节点都显示为一个矩形,可以根据我们分配的值调整大小和颜色。大小和颜色的值是相对于图中所有其他节点的。以下是树状图的示例。

我们已经在《GWT Google Charts 入门程序》章节中看到了用于绘制图表的基本步骤。现在,让我们看一个树状图的例子。

GWT Google Charts 树状图 配置

我们使用TreeMap类来显示树状图。

TreeMap chart = new TreeMap();

GWT Google Charts 树状图 示例

package cn.xnip.helloWorld.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.*;
import com.googlecode.gwt.charts.client.ChartLoader;
import com.googlecode.gwt.charts.client.ChartPackage;
import com.googlecode.gwt.charts.client.ColumnType;
import com.googlecode.gwt.charts.client.DataTable;
import com.googlecode.gwt.charts.client.treemap.TreeMap;
import com.googlecode.gwt.charts.client.treemap.TreeMapOptions;

public class HelloWorld implements EntryPoint {
    private TreeMap chart;

    private void initialize() {
        ChartLoader chartLoader = new ChartLoader(ChartPackage.TREEMAP);
        chartLoader.loadApi(new Runnable() {
            public void run() {
                // Create and attach the chart
                chart = new TreeMap();
                RootPanel.get().add(chart);
                draw();
            }
        });
    }
    private void draw() {
        // Prepare the data
        DataTable dataTable = DataTable.create();
        dataTable.addColumn(ColumnType.STRING, "Location");
        dataTable.addColumn(ColumnType.STRING, "Parent");
        dataTable.addColumn(ColumnType.NUMBER, "Market trade volume (size)");
        dataTable.addColumn(ColumnType.NUMBER, "Market increase/decrease (color)");

        dataTable.addRow("Global",null,0,0);
        dataTable.addRow("America","Global",0,0);
        dataTable.addRow("Europe","Global",0,0);
        dataTable.addRow("Asia","Global",0,0);
        dataTable.addRow("Australia","Global",0,0);
        dataTable.addRow("Africa","Global",0,0);

        dataTable.addRow("USA","America",52,31);
        dataTable.addRow("Mexico","America",24,12);
        dataTable.addRow("Canada","America",16,-23);

        dataTable.addRow("France","Europe",42,-11);
        dataTable.addRow("Germany","Europe",31,-2);
        dataTable.addRow("Sweden","Europe",22,-13);

        dataTable.addRow("China","Asia",36,4);
        dataTable.addRow("Japan","Asia",20,-12);
        dataTable.addRow("India","Asia",40,63);

        dataTable.addRow("Egypt","Africa",21,0);
        dataTable.addRow("Congo","Africa",10,12);
        dataTable.addRow("Zaire","Africa",8,10);

        // Set options
        TreeMapOptions options = TreeMapOptions.create();
        options.setMinColor("#ff7777");
        options.setMidColor("#ffff77");
        options.setMaxColor("#77ff77");
        options.setHeaderHeight(15);
        options.setShowScale(true);

        // Draw the chart
        chart.draw(dataTable, options);
        chart.setWidth("600px");
        chart.setHeight("400px");
    }
    public void onModuleLoad() {
        initialize();
    }
}

输出结果为: