Пример #1
0
  private Chart createChart(int points) {
    Chart chart = new Chart(ChartType.SCATTER);
    Configuration conf = chart.getConfiguration();

    conf.getChart().setZoomType(ZoomType.XY);
    conf.disableCredits();
    conf.setTitle("Height vs Weight");
    conf.setSubTitle("Polygon series in Vaadin Charts.");

    Tooltip tooltip = conf.getTooltip();
    tooltip.setHeaderFormat("{series.name}");
    tooltip.setPointFormat("{point.x} cm, {point.y} kg");

    XAxis xAxis = conf.getxAxis();
    xAxis.setStartOnTick(true);
    xAxis.setEndOnTick(true);
    xAxis.setShowLastLabel(true);
    xAxis.setTitle("Height (cm)");

    YAxis yAxis = conf.getyAxis();
    yAxis.setTitle("Weight (kg)");

    AbstractLinePlotOptions plotOptions = new PlotOptionsScatter();
    plotOptions.setThreshold(0);
    DataSeries scatter = new DataSeries();
    scatter.setPlotOptions(plotOptions);
    scatter.setName("Observations");
    fillScatter(scatter, points);
    conf.addSeries(scatter);
    return chart;
  }
  @Override
  protected Component getChart() {
    final Chart chart = new Chart(ChartType.COLUMN);
    chart.setId("chart");

    final Configuration conf = chart.getConfiguration();

    conf.setTitle("Browser market share, April, 2011");
    conf.setSubTitle("Click the columns to view versions. Click again to view brands.");
    conf.getLegend().setEnabled(false);

    XAxis x = new XAxis();
    x.setType(AxisType.CATEGORY);
    conf.addxAxis(x);

    YAxis y = new YAxis();
    y.setTitle("Total percent market share");
    conf.addyAxis(y);

    PlotOptionsColumn column = new PlotOptionsColumn();
    column.setCursor(Cursor.POINTER);
    column.setDataLabels(new Labels(true));
    column.getDataLabels().setFormatter("this.y +'%'");

    conf.setPlotOptions(column);

    Tooltip tooltip = new Tooltip();
    tooltip.setHeaderFormat("<span style=\"font-size:11px\">{series.name}</span><br>");
    tooltip.setPointFormat(
        "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>");
    conf.setTooltip(tooltip);

    DataSeries series = new DataSeries();
    series.setName("Browser brands");
    PlotOptionsColumn plotOptionsColumn = new PlotOptionsColumn();
    plotOptionsColumn.setColorByPoint(true);
    series.setPlotOptions(plotOptionsColumn);

    DataSeriesItem item = new DataSeriesItem("MSIE", 55.11);
    DataSeries drillSeries = new DataSeries("MSIE versions");
    drillSeries.setId("MSIE");
    String[] categories = new String[] {"MSIE 6.0", "MSIE 7.0", "MSIE 8.0", "MSIE 9.0"};
    Number[] ys = new Number[] {10.85, 7.35, 33.06, 2.81};
    drillSeries.setData(categories, ys);
    series.addItemWithDrilldown(item, drillSeries);

    item = new DataSeriesItem("Firefox", 21.63);
    drillSeries = new DataSeries("Firefox versions");
    drillSeries.setId("Firefox");
    categories =
        new String[] {"Firefox 2.0", "Firefox 3.0", "Firefox 3.5", "Firefox 3.6", "Firefox 4.0"};
    ys = new Number[] {0.20, 0.83, 1.58, 13.12, 5.43};
    drillSeries.setData(categories, ys);
    series.addItemWithDrilldown(item, drillSeries);

    item = new DataSeriesItem("Chrome", 11.94);
    drillSeries = new DataSeries("Chrome versions");
    drillSeries.setId("Chrome");
    categories =
        new String[] {
          "Chrome 5.0",
          "Chrome 6.0",
          "Chrome 7.0",
          "Chrome 8.0",
          "Chrome 9.0",
          "Chrome 10.0",
          "Chrome 11.0",
          "Chrome 12.0"
        };
    ys = new Number[] {0.12, 0.19, 0.12, 0.36, 0.32, 9.91, 0.50, 0.22};
    drillSeries.setData(categories, ys);
    series.addItemWithDrilldown(item, drillSeries);

    item = new DataSeriesItem("Safari", 7.15);
    drillSeries = new DataSeries("Safari versions");
    drillSeries.setId("Safari");
    categories =
        new String[] {
          "Safari 5.0",
          "Safari 4.0",
          "Safari Win 5.0",
          "Safari 4.1",
          "Safari/Maxthon",
          "Safari 3.1",
          "Safari 4.1"
        };
    ys = new Number[] {4.55, 1.42, 0.23, 0.21, 0.20, 0.19, 0.14};
    drillSeries.setData(categories, ys);
    series.addItemWithDrilldown(item, drillSeries);

    item = new DataSeriesItem("Opera", 2.14);
    drillSeries = new DataSeries("Opera versions");
    drillSeries.setId("Opera");
    categories = new String[] {"Opera 9.x", "Opera 10.x", "Opera 11.x"};
    ys = new Number[] {0.12, 0.37, 1.65};
    drillSeries.setData(categories, ys);
    series.addItemWithDrilldown(item, drillSeries);
    conf.addSeries(series);

    return chart;
  }