package com.googlecode.gwt.charts.showcase.client.corechart;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.DockLayoutPanel;
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.corechart.ScatterChart;
import com.googlecode.gwt.charts.client.corechart.ScatterChartOptions;
import com.googlecode.gwt.charts.client.options.HAxis;
import com.googlecode.gwt.charts.client.options.VAxis;
public class ScatterChartExample extends DockLayoutPanel {
private ScatterChart chart;
public ScatterChartExample() {
super(Unit.PX);
initialize();
}
private void initialize() {
ChartLoader chartLoader = new ChartLoader(ChartPackage.CORECHART);
chartLoader.loadApi(new Runnable() {
@Override
public void run() {
// Create and attach the chart
chart = new ScatterChart();
add(chart);
draw();
}
});
}
private void draw() {
// Prepare the data
DataTable dataTable = DataTable.create();
dataTable.addColumn(ColumnType.NUMBER, "X");
dataTable.addColumn(ColumnType.NUMBER, "Shape 1");
dataTable.addColumn(ColumnType.NUMBER, "Shape 2");
dataTable.addRows(1000);
for (int i = 0; i < 500; ++i) {
dataTable.setValue(i, 0, Math.sin(i / 5.0) * 0.25);
dataTable.setValue(i, 1, Math.cos(i / 25.0));
}
for (int i = 0; i < 500; i++) {
dataTable.setValue(i + 500, 0, Math.sin(i / 25.0));
dataTable.setValue(i + 500, 2, Math.cos(i / 10.0) * 0.5);
}
// Set options
ScatterChartOptions options = ScatterChartOptions.create();
options.setBackgroundColor("#f0f0f0");
options.setFontName("Tahoma");
options.setTitle("Cool shapes");
options.setHAxis(HAxis.create("X"));
options.setVAxis(VAxis.create("Y"));
// Draw the chart
chart.draw(dataTable, options);
}
}