예제 #1
0
  /**
   * Builds an XY multiple series renderer.
   *
   * @param colors the series rendering color
   * @param styles the series point style
   * @return the XY multiple series renderer
   */
  protected XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles) {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(25);
    renderer.setChartTitleTextSize(25);
    renderer.setLabelsTextSize(25);
    renderer.setLegendTextSize(25);
    renderer.setPointSize(10f);

    renderer.setBackgroundColor(ColorUtil.BLACK);
    renderer.setApplyBackgroundColor(true);

    renderer.setMargins(new int[] {20, 30, 15, 20});

    for (int i = 0; i < colors.length; i++) {
      renderer.addSeriesRenderer(getXYSeriesRenderer(colors[i], styles[i]));
    }

    return renderer;
  }
예제 #2
0
  /**
   * Builds a bar multiple series renderer to use the provided colors.
   *
   * @param colors the series renderers colors
   * @return the bar multiple series renderer
   */
  protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(25);
    renderer.setChartTitleTextSize(25);
    renderer.setLabelsTextSize(25);
    renderer.setLegendTextSize(25);

    renderer.setBackgroundColor(ColorUtil.BLACK);
    renderer.setApplyBackgroundColor(true);

    int length = colors.length;

    for (int i = 0; i < length; i++) {
      XYSeriesRenderer r = new XYSeriesRenderer();
      r.setColor(colors[i]);
      renderer.addSeriesRenderer(r);
    }

    return renderer;
  }
예제 #3
0
  public DensityChart(PopulationData data) {

    colors = new int[] {0x660000, 0x006600};
    dataSet = new XYMultipleSeriesDataset();
    XYSeries[] series = new XYSeries[] {new XYSeries("Population")};

    renderer = new XYMultipleSeriesRenderer();
    XYSeriesRenderer[] renderers =
        new XYSeriesRenderer[] {
          new XYSeriesRenderer(),
        };

    for (XYSeriesRenderer r : renderers) {
      r.setLineWidth(2);
      r.setColor(0xffff0000);
      r.setFillBelowLine(true);
      r.setFillBelowLineColor(0x33ff0000);
      renderer.addSeriesRenderer(r);
    }
    renderer.setBackgroundColor(0xff000000);
    renderer.setInitialRange(new double[] {1900, 2010, 0, 800000});
    renderer.setXAxisMin(1910);
    renderer.setMarginsColor(0xffffff);
    renderer.setAxesColor(0x0);
    renderer.setXLabelsColor(0x0);
    renderer.setYLabelsColor(0, 0x0);
    renderer.setShowGridX(true);
    renderer.setGridColor(0xcccccc);

    dataSet.addAllSeries(Arrays.asList(series));

    LineChart lc =
        new LineChart(dataSet, renderer) {

          @Override
          protected ClickableArea[] clickableAreasForPoints(
              List<Float> points,
              List<Double> values,
              float yAxisValue,
              int seriesIndex,
              int startIndex) {
            ClickableArea[] hotspots =
                super.clickableAreasForPoints(points, values, yAxisValue, seriesIndex, startIndex);
            for (ClickableArea area : hotspots) {
              area.getRect().setY(0);
              area.getRect().setHeight(10000);
            }
            return hotspots;
          }
        };

    chart =
        new ChartComponent(lc) {

          @Override
          protected void seriesPressed(SeriesSelection sel) {
            super.seriesPressed(sel);
            yearPressed((int) sel.getXValue());
          }
        };

    this.setLayout(new BorderLayout());
    this.addComponent(BorderLayout.CENTER, chart);
    this.data = data;
  }