@Override
  protected Component getChart() {
    Chart chart = new Chart();
    chart.setHeight("450px");
    chart.setWidth("100%");

    Configuration configuration = chart.getConfiguration();
    configuration.getTitle().setText("Logarithmic axis demo");

    configuration.getxAxis().setTickInterval(1);

    YAxis yAxis = configuration.getyAxis();
    yAxis.setType(AxisType.LOGARITHMIC);
    yAxis.setMinorTickInterval("0.1");

    configuration.getTooltip().setHeaderFormat("<b>{series.name}</b><br />");
    configuration.getTooltip().setPointFormat("x = {point.x}, y = {point.y}");
    PlotOptionsLine plotOptions = new PlotOptionsLine();
    plotOptions.setPointStart(1);
    configuration.setPlotOptions(plotOptions);

    ListSeries ls = new ListSeries(1, 2, 4, 8, 16, 32, 64, 128, 256, 512);
    configuration.setSeries(ls);

    chart.drawChart(configuration);
    return chart;
  }
 private void zoomTo(ZoomCoordinates zoom) {
   XAxis xAxis = chart.getConfiguration().getxAxis();
   YAxis yAxis = chart.getConfiguration().getyAxis();
   xAxis.setExtremes(zoom.xMin, zoom.xMax);
   yAxis.setExtremes(zoom.yMin, zoom.yMax);
   System.out.println("Setting zooms: " + zoom.xMin + " - " + zoom.xMax);
 }
  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;
  }
Exemple #4
0
  @Override
  protected Component getChart() {
    Chart chart = new Chart(ChartType.LINE);

    Configuration conf = chart.getConfiguration();
    conf.getChart().setPolar(true);
    conf.setTitle("Budget vs spending");
    conf.getTitle().setX(-80);

    Pane pane = new Pane();
    pane.setSize(80, Unit.PERCENTAGE);
    conf.addPane(pane);

    XAxis axis = new XAxis();
    axis.setCategories(
        "Sales",
        "Marketing",
        "Development",
        "Customer Support",
        "Information Technology",
        "Administration");
    axis.setTickmarkPlacement(TickmarkPlacement.ON);
    axis.setLineWidth(0);

    YAxis yaxs = new YAxis();
    yaxs.setGridLineInterpolation("polygon");
    yaxs.setMin(0);
    yaxs.setLineWidth(0);
    conf.addxAxis(axis);
    conf.addyAxis(yaxs);

    conf.getTooltip().setShared(true);
    conf.getTooltip().setValuePrefix("$");

    conf.getLegend().setAlign(HorizontalAlign.RIGHT);
    conf.getLegend().setVerticalAlign(VerticalAlign.TOP);
    conf.getLegend().setY(100);
    conf.getLegend().setLayout(LayoutDirection.VERTICAL);

    ListSeries line1 = new ListSeries(43000, 19000, 60000, 35000, 17000, 10000);
    ListSeries line2 = new ListSeries(50000, 39000, 42000, 31000, 26000, 14000);
    PlotOptionsLine plotOptions = new PlotOptionsLine();
    plotOptions.setPointPlacement(PointPlacement.ON);
    line1.setPlotOptions(plotOptions);
    line1.setName("Allocated Budget");

    plotOptions = new PlotOptionsLine();
    plotOptions.setPointPlacement(PointPlacement.ON);
    line2.setPlotOptions(plotOptions);
    line2.setName("Actual Spending");

    conf.setSeries(line1, line2);

    chart.drawChart(conf);

    return chart;
  }
Exemple #5
0
  @Override
  protected Component getChart() {
    chart = new Chart();

    chart.getConfiguration().setTitle("Box Plot Example");

    Legend legend = new Legend();
    legend.setEnabled(false);
    chart.getConfiguration().setLegend(legend);

    XAxis xaxis = chart.getConfiguration().getxAxis();
    xaxis.setTitle("Experiment No.");
    xaxis.setCategories("1", "2", "3", "4", "5");

    YAxis yAxis = chart.getConfiguration().getyAxis();

    yAxis.setTitle("Observations");
    PlotLine plotLine = new PlotLine();
    plotLine.setColor(new SolidColor("red"));
    plotLine.setValue(932);
    plotLine.setWidth(1);
    PlotBandLabel label = new PlotBandLabel("Theoretical mean: 932");
    label.setAlign(HorizontalAlign.CENTER);
    Style style = new Style();
    style.setColor(new SolidColor("gray"));
    label.setStyle(style);
    plotLine.setLabel(label);
    yAxis.setPlotLines(plotLine);

    observations = new DataSeries();
    observations.setName("Observations");

    // Add PlotBoxItems contain all fields relevant for plot box chart
    observations.add(new BoxPlotItem(760, 801, 848, 895, 965));

    // Example with no arg constructor
    BoxPlotItem plotBoxItem = new BoxPlotItem();
    plotBoxItem.setLow(733);
    plotBoxItem.setLowerQuartile(853);
    plotBoxItem.setMedian(939);
    plotBoxItem.setUpperQuartile(980);
    plotBoxItem.setHigh(1080);
    observations.add(plotBoxItem);

    observations.add(new BoxPlotItem(714, 762, 817, 870, 918));
    observations.add(new BoxPlotItem(724, 802, 806, 871, 950));
    observations.add(new BoxPlotItem(834, 836, 864, 882, 910));
    observations.setPlotOptions(getPlotBoxOptions());
    chart.getConfiguration().addSeries(observations);

    return chart;
  }
Exemple #6
0
  private Configuration createConf() {
    Configuration conf = new Configuration();

    conf.setTitle("Historic World Population by Region");
    conf.setSubTitle("Source: Wikipedia.org");

    XAxis x = new XAxis();
    x.setCategories("Africa", "America", "Asia", "Europe", "Oceania");
    x.setTitle((String) null);
    conf.addxAxis(x);

    YAxis y = new YAxis();
    y.setMin(0);
    Title title = new Title("Population (millions)");
    title.setVerticalAlign(VerticalAlign.HIGH);
    y.setTitle(title);
    conf.addyAxis(y);

    Tooltip tooltip = new Tooltip();
    tooltip.setFormatter("this.series.name +': '+ this.y +' millions'");
    conf.setTooltip(tooltip);

    PlotOptionsBar plot = new PlotOptionsBar();
    plot.setDataLabels(new Labels(true));
    conf.setPlotOptions(plot);

    Legend legend = new Legend();
    legend.setLayout(LayoutDirection.VERTICAL);
    legend.setHorizontalAlign(HorizontalAlign.RIGHT);
    legend.setVerticalAlign(VerticalAlign.TOP);
    legend.setX(-100);
    legend.setY(100);
    legend.setFloating(true);
    legend.setBorderWidth(1);
    legend.setBackgroundColor("#FFFFFF");
    legend.setShadow(true);
    conf.setLegend(legend);

    conf.disableCredits();

    List<Series> series = new ArrayList<Series>();
    series.add(new ListSeries("Year 1800", 107, 31, 635, 203, 2));
    series.add(new ListSeries("Year 1900", 133, 156, 947, 408, 6));
    series.add(new ListSeries("Year 2008", 973, 914, 4054, 732, 34));
    conf.setSeries(series);
    return conf;
  }
Exemple #7
0
 @Test
 public void testPlotBandsWarning0() throws Exception {
   InterfaceLimit limit = new InterfaceLimit();
   limit.setWarning(0);
   limit.setCritical(50);
   ChartManager.setPlotBand(chart, limit);
   assertPlots(yAxis.getPlotBands(), 0, 0, 50, Integer.MAX_VALUE);
 }
  @Override
  protected Component getChart() {
    Chart chart = new Chart(ChartType.AREA);

    Configuration conf = chart.getConfiguration();

    conf.getChart().setInverted(true);

    conf.setTitle(new Title("Average fruit consumption during one week"));

    XAxis xAxis = new XAxis();
    xAxis.setCategories(
        "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
    conf.addxAxis(xAxis);

    YAxis yAxis = new YAxis();
    yAxis.setTitle(new Title("Number of units"));
    yAxis.setMin(0);
    conf.addyAxis(yAxis);

    Legend legend = new Legend();
    legend.setLayout(LayoutDirection.VERTICAL);
    legend.setHorizontalAlign(HorizontalAlign.LEFT);
    legend.setFloating(true);
    legend.setVerticalAlign(VerticalAlign.TOP);
    legend.setX(-150);
    legend.setY(100);
    legend.setBorderWidth(1);
    legend.setBackgroundColor("#ffffff");
    conf.setLegend(legend);

    PlotOptionsArea plotOptions = new PlotOptionsArea();
    plotOptions.setFillOpacity(0.5);
    conf.setPlotOptions(plotOptions);

    conf.addSeries(new ListSeries("John", 3, 4, 3, 5, 4, 10, 12));
    conf.addSeries(new ListSeries("Jane", 1, 3, 4, 3, 3, 5, 4));

    chart.drawChart(conf);

    return chart;
  }
Exemple #9
0
 @Test
 public void testArithmeticMin() throws Exception {
   ChartManager.setLogarithmic(chart, false);
   assertEquals(0, yAxis.getMin());
 }
Exemple #10
0
 @Test
 public void testLogarithmicMin() throws Exception {
   ChartManager.setLogarithmic(chart, true);
   assertNull(yAxis.getMin());
 }
Exemple #11
0
 @Test
 public void testArithmeticMinorTickInterval() throws Exception {
   ChartManager.setLogarithmic(chart, false);
   assertNull(yAxis.getMinorTickInterval());
 }
Exemple #12
0
 @Test
 public void testLogarithmicMinorTickInterval() throws Exception {
   ChartManager.setLogarithmic(chart, true);
   assertEquals(0.1, yAxis.getMinorTickInterval());
 }
Exemple #13
0
 @Test
 public void testArithmeticType() throws Exception {
   ChartManager.setLogarithmic(chart, false);
   assertNull(yAxis.getType());
 }
Exemple #14
0
 @Test
 public void testLogarithmicType() throws Exception {
   ChartManager.setLogarithmic(chart, true);
   assertEquals(AxisType.LOGARITHMIC, yAxis.getType());
 }
Exemple #15
0
 @Test
 public void testPlotBandsNull() throws Exception {
   ChartManager.setPlotBand(chart, null);
   assertPlots(yAxis.getPlotBands(), 0);
 }
Exemple #16
0
  @Override
  protected Component getChart() {
    final Chart chart = new Chart();
    chart.setWidth(500, Unit.PIXELS);

    final Configuration configuration = chart.getConfiguration();
    configuration.getChart().setType(ChartType.SOLIDGAUGE);

    configuration.getTitle().setText("Speed");

    Pane pane = new Pane();

    pane.setCenter("50%", "85%");
    pane.setSize("140%");
    pane.setStartAngle(-90);
    pane.setEndAngle(90);
    configuration.addPane(pane);

    configuration.getTooltip().setEnabled(false);

    Background bkg = new Background();
    bkg.setBackgroundColor(new SolidColor("#eeeeee"));
    bkg.setInnerRadius("60%");
    bkg.setOuterRadius("100%");
    bkg.setShape("arc");
    bkg.setBorderWidth(0);
    pane.setBackground(new Background[] {bkg});

    YAxis yaxis = configuration.getyAxis();
    yaxis.setLineWidth(0);
    yaxis.setTickInterval(200);
    yaxis.setTickWidth(0);
    yaxis.setMin(0);
    yaxis.setMax(200);
    yaxis.setTitle(new AxisTitle(""));
    yaxis.getTitle().setY(-70);
    yaxis.setLabels(new Labels());
    yaxis.getLabels().setY(16);
    Stop stop1 = new Stop(0.1f, SolidColor.GREEN);
    Stop stop2 = new Stop(0.5f, SolidColor.YELLOW);
    Stop stop3 = new Stop(0.9f, SolidColor.RED);
    yaxis.setStops(new Stop[] {stop1, stop2, stop3});

    PlotOptionsSolidGauge plotOptions = new PlotOptionsSolidGauge();
    plotOptions.setTooltip(new SeriesTooltip());
    plotOptions.getTooltip().setValueSuffix(" km/h");
    DataLabels labels = new DataLabels();
    labels.setY(5);
    labels.setBorderWidth(0);
    labels.setUseHTML(true);
    labels.setFormat(
        "<div style=\"text-align:center\"><span style=\"font-size:25px;\">{y}</span><br/>"
            + "                       <span style=\"font-size:12pxg\">km/h</span></div>");
    plotOptions.setDataLabels(labels);
    configuration.setPlotOptions(plotOptions);

    final ListSeries series = new ListSeries("Speed", 80);
    configuration.setSeries(series);

    runWhileAttached(
        chart,
        new Runnable() {
          Random r = new Random(0);

          @Override
          public void run() {
            Integer oldValue = series.getData()[0].intValue();
            Integer newValue = (int) (oldValue + (r.nextDouble() - 0.5) * 20.0);
            if (newValue > 200) {
              newValue = 200;
            } else if (newValue < 0) {
              newValue = 0;
            }
            series.updatePoint(0, newValue);
          }
        },
        3000,
        12000);

    chart.drawChart(configuration);
    return chart;
  }
  @Override
  protected Component getChart() {
    VerticalLayout layout = new VerticalLayout();
    final Chart chart = new Chart(ChartType.COLUMN);
    chart.setId("chart");

    conf = chart.getConfiguration();

    conf.setTitle("Global happiness index");
    conf.setSubTitle("Source: www.happyplanetindex.org");
    conf.getLegend().setEnabled(false);

    XAxis x = new XAxis();
    // FIXME remove toString() once enums are used in model (CHARTS-159)
    x.setType(AxisType.CATEGORY.toString());
    conf.addxAxis(x);

    YAxis y = new YAxis();
    y.setTitle(new Title("Total"));
    conf.addyAxis(y);

    PlotOptionsColumn column = new PlotOptionsColumn();
    column.setCursor(Cursor.POINTER.toString());
    column.setDataLabels(new DataLabels(true));

    conf.setPlotOptions(column);

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

    DataSeriesItem item = new DataSeriesItem("Latin America and Carribean", 60);
    item.setId("Latin America and Carribean");
    series.addItemWithDrilldown(item);

    item = new DataSeriesItem("Western Nations", 50);
    item.setId("Western Nations");
    series.addItemWithDrilldown(item);

    conf.addSeries(series);

    drillSeries = new HashMap<String, DataSeries>();

    DataSeries drill = new DataSeries("Latin America and Carribean Countries");

    item = new DataSeriesItem("Costa Rica", 64);
    item.setId("Costa Rica");
    drill.addItemWithDrilldown(item);

    item = new DataSeriesItem("Colombia", 59.8);
    item.setId("Colombia");
    drill.addItemWithDrilldown(item);

    item = new DataSeriesItem("Belize", 59.3);
    item.setId("Belize");
    drill.addItemWithDrilldown(item);

    drillSeries.put("Latin America and Carribean", drill);

    drill = new DataSeries("Western Nations Countries");

    item = new DataSeriesItem("New Zealand", 51.6);
    item.setId("New Zealand");
    drill.addItemWithDrilldown(item);

    item = new DataSeriesItem("Norway", 51.4);
    item.setId("Norway");
    drill.addItemWithDrilldown(item);

    item = new DataSeriesItem("Switzerland", 50.3);
    item.setId("Switzerland");
    drill.addItemWithDrilldown(item);

    drillSeries.put("Western Nations", drill);

    drill = new DataSeries("Details Costa Rica");
    drill.setId("Details Costa Rica");
    String[] categories =
        new String[] {"Life Expectancy", "Well-being (0-10)", "Footprint (gha/capita)"};
    Number[] ys = new Number[] {79.3, 7.3, 2.5};
    drill.setData(categories, ys);
    drillSeries.put("Costa Rica", drill);

    drill = new DataSeries("Details Colombia");
    drill.setId("Details Colombia");
    ys = new Number[] {73.7, 6.4, 1.8};
    drill.setData(categories, ys);
    drillSeries.put("Colombia", drill);

    drill = new DataSeries("Details Belize");
    drill.setId("Details Belize");
    ys = new Number[] {76.1, 6.5, 2.1};
    drill.setData(categories, ys);
    drillSeries.put("Belize", drill);

    drill = new DataSeries("Details New Zealand");
    drill.setId("Details New Zealand");
    ys = new Number[] {80.7, 7.2, 4.3};

    drill.setData(categories, ys);
    drillSeries.put("New Zealand", drill);

    drill = new DataSeries("Details Norway");
    drill.setId("Details Norway");
    ys = new Number[] {81.1, 7.6, 4.8};
    drill.setData(categories, ys);
    drillSeries.put("Norway", drill);

    drill = new DataSeries("Details Switzerland");
    drill.setId("Details Switzerland");
    ys = new Number[] {82.3, 7.5, 5.0};
    drill.setData(categories, ys);
    drillSeries.put("Switzerland", drill);

    chart.setDrilldownCallback(
        new DrilldownCallback() {

          @Override
          public Series handleDrilldown(DrilldownEvent event) {
            log("DrilldownEvent: " + event.getItem().getId());
            return getPointDrilldown(event.getItem());
          }
        });

    chart.addPointClickListener(
        new PointClickListener() {

          @Override
          public void onClick(PointClickEvent event) {
            log(
                "PointClickEvent: "
                    + event.getSeries().getName()
                    + " index :"
                    + event.getPointIndex());
          }
        });

    chart.addChartDrillupListener(
        new ChartDrillupListener() {

          @Override
          public void onDrillup(ChartDrillupEvent event) {
            log("ChartDrillupEvent");
          }
        });

    layout.addComponent(chart);
    layout.addComponent(log);
    return layout;
  }
  @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;
  }
Exemple #19
0
 public void configurarAxisY(String titulo) {
   YAxis yAxis = getConfiguration().getyAxis();
   yAxis.setMin(-5d);
   yAxis.setTitle("Temperature (°C)");
   yAxis.getTitle().setVerticalAlign(VerticalAlign.MIDDLE);
 }
  protected Component getChart() {
    final Chart chart = new Chart();
    chart.setWidth("500px");

    final Configuration configuration = new Configuration();
    configuration.getChart().setType(ChartType.GAUGE);
    configuration.getChart().setAlignTicks(false);
    configuration.getChart().setPlotBackgroundColor(null);
    configuration.getChart().setPlotBackgroundImage(null);
    configuration.getChart().setPlotBorderWidth(0);
    configuration.getChart().setPlotShadow(false);
    configuration.setTitle("Temperature");

    configuration.getPane().setStartAngle(-150);
    configuration.getPane().setEndAngle(150);

    YAxis yAxis = new YAxis();
    yAxis.setMin(-30);
    yAxis.setMax(50);
    yAxis.setLineColor(new SolidColor("#339"));
    yAxis.setTickColor(new SolidColor("#339"));
    yAxis.setMinorTickColor(new SolidColor("#339"));
    yAxis.setOffset(-25);
    yAxis.setLineWidth(2);
    yAxis.setLabels(new Labels());
    yAxis.getLabels().setDistance(-20);
    yAxis.getLabels().setRotationPerpendicular();
    yAxis.setTickLength(5);
    yAxis.setMinorTickLength(5);
    yAxis.setEndOnTick(false);

    configuration.addyAxis(yAxis);

    final ListSeries series = new ListSeries("Temperature", 12);

    PlotOptionsGauge plotOptionsGauge = new PlotOptionsGauge();
    plotOptionsGauge.setDataLabels(new Labels());
    plotOptionsGauge.getDataLabels().setFormatter("function() {return '' + this.y +  ' °C';}");
    GradientColor gradient = GradientColor.createLinear(0, 0, 0, 1);
    gradient.addColorStop(0, new SolidColor("#DDD"));
    gradient.addColorStop(1, new SolidColor("#FFF"));
    plotOptionsGauge.getDataLabels().setBackgroundColor(gradient);
    plotOptionsGauge.getTooltip().setValueSuffix(" °C");
    series.setPlotOptions(plotOptionsGauge);
    configuration.setSeries(series);
    chart.drawChart(configuration);

    return chart;
  }