Esempio n. 1
0
  /**
   * Creates a sample chart.
   *
   * @param data the sample data.
   * @return A configured chart.
   */
  private static AFreeChart createChart() {
    XYDataset data = createDataset();
    AFreeChart chart =
        ChartFactory.createXYLineChart(
            "Marker Demo 01", "Time", "Value", data, PlotOrientation.VERTICAL, false, true, false);

    XYPlot plot = (XYPlot) chart.getPlot();
    ValueAxis valueAxis = plot.getRangeAxis();
    PeriodAxisLabelInfo[] info = new PeriodAxisLabelInfo[2];

    info[0] =
        new PeriodAxisLabelInfo(
            Hour.class,
            new SimpleDateFormat("HH"),
            new RectangleInsets(0, 0, 25, 0),
            valueAxis.getLabelFont(),
            valueAxis.getAxisLinePaintType(),
            true,
            valueAxis.getAxisLineStroke(),
            valueAxis.getAxisLinePaintType());
    info[1] =
        new PeriodAxisLabelInfo(
            Day.class,
            new SimpleDateFormat("dd-MMM"),
            new RectangleInsets(0, 0, 0, 0),
            valueAxis.getLabelFont(),
            valueAxis.getLabelPaintType(),
            false,
            valueAxis.getAxisLineStroke(),
            valueAxis.getLabelPaintType());

    PeriodAxis domainAxis =
        new PeriodAxis(null, new Hour(0, 18, 10, 2011), new Hour(23, 18, 10, 2011));

    domainAxis.setLabelInfo(info);
    plot.setDomainAxis(domainAxis);

    PaintType paintRed = new SolidColor(Color.RED);
    PaintType paintGreen = new SolidColor(Color.GREEN);

    ValueAxis rangeAxis = plot.getRangeAxis();
    rangeAxis.setRange(0, 100);

    XYItemRenderer renderer = plot.getRenderer();
    renderer.setSeriesPaintType(0, paintGreen);
    renderer.setSeriesStroke(0, 2.0f);

    // add a marker
    Marker marker_H = new ValueMarker(50.0);
    marker_H.setLabelOffsetType(LengthAdjustmentType.EXPAND);
    marker_H.setPaintType(paintRed);
    marker_H.setStroke(2.0f);
    plot.addRangeMarker(marker_H);

    // add range marker
    Hour hour1 = new Hour(11, 18, 10, 2011);
    Hour hour2 = new Hour(13, 18, 10, 2011);
    double millis1 = hour1.getFirstMillisecond();
    double millis2 = hour2.getFirstMillisecond();
    Marker marker_V = new IntervalMarker(millis1, millis2);
    marker_V.setLabelOffsetType(LengthAdjustmentType.EXPAND);
    marker_V.setPaintType(new SolidColor(Color.rgb(150, 150, 255)));
    plot.addDomainMarker(marker_V, Layer.BACKGROUND);

    Marker marker_V_Start = new ValueMarker(millis1, Color.BLUE, 2.0f);
    Marker marker_V_End = new ValueMarker(millis2, Color.BLUE, 2.0f);
    plot.addDomainMarker(marker_V_Start, Layer.BACKGROUND);
    plot.addDomainMarker(marker_V_End, Layer.BACKGROUND);
    return chart;
  }