Example usage for org.jfree.chart.plot XYPlot mapDatasetToRangeAxis

List of usage examples for org.jfree.chart.plot XYPlot mapDatasetToRangeAxis

Introduction

In this page you can find the example usage for org.jfree.chart.plot XYPlot mapDatasetToRangeAxis.

Prototype

public void mapDatasetToRangeAxis(int index, int axisIndex) 

Source Link

Document

Maps a dataset to a particular range axis.

Usage

From source file:ec.ui.view.RevisionSaSeriesView.java

private void showResults() {
    if (history_ == null) {
        return;/*from   w  ww.j a v  a2 s.co m*/
    }

    lastIndexSelected = -1;

    final TimeSeriesCollection chartSeries = new TimeSeriesCollection();
    sRef = history_.referenceSeries(info_);
    TsPeriodSelector selector = new TsPeriodSelector();
    int n = sRef.getDomain().getLength();
    int freq = sRef.getDomain().getFrequency().intValue();
    int l = years_ * freq + 1;
    int n0 = n - l;
    if (n0 < minyears_ * freq) {
        n0 = minyears_ * freq;
    }
    if (n0 < n) {
        firstPeriod = sRef.getDomain().get(n0);
        selector.from(sRef.getDomain().get(n0).firstday());
    } else {
        firstPeriod = sRef.getStart();
    }
    addSeries(chartSeries, sRef.select(selector));

    final TimeSeriesCollection startSeries = new TimeSeriesCollection();
    TsDomain dom = sRef.getDomain();
    for (int i = n0; i < n - 1; ++i) {
        addStart(startSeries, info_, dom.get(i));
    }

    if (startSeries.getSeriesCount() == 0 || chartSeries.getSeriesCount() == 0) {
        chartpanel_.setChart(mainChart);
        return;
    }

    setRange(chartSeries, startSeries);

    XYPlot plot = mainChart.getXYPlot();
    plot.setDataset(S_INDEX, chartSeries);

    plot.setDataset(REV_INDEX, startSeries);

    for (int i = 0; i < startSeries.getSeriesCount(); i++) {
        revRenderer.setSeriesShape(i, new Ellipse2D.Double(-3, -3, 6, 6));
        revRenderer.setSeriesShapesFilled(i, false);
        revRenderer.setSeriesPaint(i, themeSupport.getLineColor(ColorScheme.KnownColor.BLUE));
    }
    plot.setRenderer(REV_INDEX, revRenderer);

    setRange(chartSeries, startSeries);
    configureAxis(plot);

    plot.mapDatasetToDomainAxis(S_INDEX, REV_INDEX);
    plot.mapDatasetToRangeAxis(S_INDEX, REV_INDEX);
    plot.mapDatasetToDomainAxis(REV_INDEX, REV_INDEX);
    plot.mapDatasetToRangeAxis(REV_INDEX, REV_INDEX);

    chartpanel_.setChart(mainChart);

    showRevisionsDocument(revisions());
}

From source file:atencionurgencia.evolucion.grafic_sVitales.java

private void graficar() {
    final TimeSeriesCollection dataset1 = axisTaFC.createDatasetTA();
    final JFreeChart chart2 = ChartFactory.createTimeSeriesChart("", // chart title
            "HORA", // domain axis label
            "Tensin Arterial - TA (ppm)", // range axis label
            dataset1, // data

            true, // include legend
            true, // tooltips?
            false // URL generator?  Not required...
    );// w  w w.ja  va2 s.  c  om
    chart2.setBackgroundPaint(Color.white);
    final XYPlot plot = chart2.getXYPlot();
    plot.setBackgroundPaint(new Color(0xEE, 0xEE, 0xFF));
    plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    XYItemRenderer r = plot.getRenderer();
    if (r instanceof XYLineAndShapeRenderer) {
        XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
        renderer.setBaseShapesVisible(true);
        renderer.setBaseShapesFilled(true);
    }
    //        plot.set

    //        
    ////        final CategoryDataset dataset2 = axisTaFC.createDatasetFC();
    ////        plot.setDataset(1, dataset2);
    plot.mapDatasetToRangeAxis(1, 0);
    //        
    //        final DateAxis domainAxis = (DateAxis) plot.getDomainAxis();
    //        domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
    ////        final ValueAxis axis2 = new NumberAxis("Frecuencia Cardiaca - FC (ppm)");
    ////        plot.setRangeAxis(1, axis2);

    plot.setDatasetRenderingOrder(DatasetRenderingOrder.REVERSE);
    //        
    //        
    //        
    final ChartPanel chartPanel = new ChartPanel(chart2);
    chartPanel.setPreferredSize(new java.awt.Dimension(444, 358));//[598, 358][444, 358]
    jPanel4.removeAll();
    jPanel4.setLayout(new BorderLayout());
    jPanel4.add(chartPanel, BorderLayout.NORTH);
    jPanel4.repaint();
}

From source file:org.jfree.chart.demo.MultipleAxisDemo1.java

/**
 * Creates the demo chart.//from  www. j  av a2s.c om
 * 
 * @return The chart.
 */
private JFreeChart createChart() {

    final XYDataset dataset1 = createDataset("Series 1", 100.0, new Minute(), 200);

    final JFreeChart chart = ChartFactory.createTimeSeriesChart("Multiple Axis Demo 1", "Time of Day",
            "Primary Range Axis", dataset1, true, true, false);

    chart.setBackgroundPaint(Color.white);
    chart.addSubtitle(new TextTitle("Four datasets and four range axes."));
    final XYPlot plot = chart.getXYPlot();
    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);

    //        plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));

    final StandardXYItemRenderer renderer = (StandardXYItemRenderer) plot.getRenderer();
    renderer.setPaint(Color.black);

    // AXIS 2
    final NumberAxis axis2 = new NumberAxis("Range Axis 2");
    axis2.setAutoRangeIncludesZero(false);
    axis2.setLabelPaint(Color.red);
    axis2.setTickLabelPaint(Color.red);
    plot.setRangeAxis(1, axis2);
    plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_LEFT);

    final XYDataset dataset2 = createDataset("Series 2", 1000.0, new Minute(), 170);
    plot.setDataset(1, dataset2);
    plot.mapDatasetToRangeAxis(1, 1);
    XYItemRenderer renderer2 = new StandardXYItemRenderer();
    renderer2.setSeriesPaint(0, Color.red);
    plot.setRenderer(1, renderer2);

    // AXIS 3
    final NumberAxis axis3 = new NumberAxis("Range Axis 3");
    axis3.setLabelPaint(Color.blue);
    axis3.setTickLabelPaint(Color.blue);
    plot.setRangeAxis(2, axis3);

    final XYDataset dataset3 = createDataset("Series 3", 10000.0, new Minute(), 170);
    plot.setDataset(2, dataset3);
    plot.mapDatasetToRangeAxis(2, 2);
    XYItemRenderer renderer3 = new StandardXYItemRenderer();
    renderer3.setSeriesPaint(0, Color.blue);
    plot.setRenderer(2, renderer3);

    // AXIS 4        
    final NumberAxis axis4 = new NumberAxis("Range Axis 4");
    axis4.setLabelPaint(Color.green);
    axis4.setTickLabelPaint(Color.green);
    plot.setRangeAxis(3, axis4);

    final XYDataset dataset4 = createDataset("Series 4", 25.0, new Minute(), 200);
    plot.setDataset(3, dataset4);
    plot.mapDatasetToRangeAxis(3, 3);

    XYItemRenderer renderer4 = new StandardXYItemRenderer();
    renderer4.setSeriesPaint(0, Color.green);
    plot.setRenderer(3, renderer4);

    return chart;
}

From source file:com.jaspersoft.studio.jasper.ChartConverter.java

/**
 * //from www  .ja  va2s .  c o  m
 */
private Renderable getRenderer(ReportConverter reportConverter, JRChart chart) {
    JasperReportsConfiguration jContext = (JasperReportsConfiguration) reportConverter
            .getJasperReportsContext();
    String renderType = null;
    Rectangle2D rectangle = null;
    ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
    try {
        Thread.currentThread().setContextClassLoader(jContext.getClassLoader());
        if (dataset != null && jfreeChart != null)
            dataset.removeChangeListener(jfreeChart.getPlot());

        renderType = chart.getRenderType();// FIXMETHEME try reuse this sequence
        if (renderType == null) {
            renderType = JRPropertiesUtil.getInstance(jContext).getProperty(reportConverter.getReport(),
                    JRChart.PROPERTY_CHART_RENDER_TYPE);
        }

        String themeName = chart.getTheme();
        if (themeName == null) {
            themeName = JRPropertiesUtil.getInstance(jContext).getProperty(reportConverter.getReport(),
                    JRChart.PROPERTY_CHART_THEME);
        }
        ChartTheme theme = ChartUtil.getInstance(jContext).getTheme(themeName);
        if (theme instanceof SimpleChartTheme) {
            SimpleChartTheme sct = (SimpleChartTheme) theme;
            sct.getChartSettings()
                    .setBackgroundImage(getCachedImageProvider(sct.getChartSettings().getBackgroundImage()));
            sct.getPlotSettings()
                    .setBackgroundImage(getCachedImageProvider(sct.getPlotSettings().getBackgroundImage()));
        }
        ChartContext chartContext = null;
        // Object cc = jContext.getMap().get(chart);
        // if (cc != null && cc instanceof ChartContext)
        // chartContext = (ChartContext) cc;
        // else {
        chartContext = new ConvertChartContext(chart, jContext);
        try {
            jfreeChart = theme.createChart(chartContext);
            dataset = chartContext.getDataset();
            if (jfreeChart == null && chart.getChartType() == JRChart.CHART_TYPE_MULTI_AXIS) {
                List<JRChartAxis> axis = ((JRDesignMultiAxisPlot) chart.getPlot()).getAxes();
                Plot mainPlot = null;
                int axisNumber = 0;
                for (JRChartAxis ax : axis) {
                    JRChart chartAxis = ((JRDesignChartAxis) ax).getChart();
                    if (jfreeChart == null) {
                        jfreeChart = getJFreeChart(reportConverter, chartAxis);
                        mainPlot = jfreeChart.getPlot();
                        if (mainPlot instanceof CategoryPlot)
                            ((CategoryPlot) mainPlot).setRangeAxisLocation(0, getChartAxisLocation(ax));
                        else if (mainPlot instanceof XYPlot)
                            ((XYPlot) mainPlot).setRangeAxisLocation(0, getChartAxisLocation(ax));
                    } else {
                        axisNumber++;
                        JFreeChart axisChart = getJFreeChart(reportConverter, chartAxis);
                        if (mainPlot instanceof CategoryPlot) {
                            CategoryPlot mainCatPlot = (CategoryPlot) mainPlot;
                            if (!(axisChart.getPlot() instanceof CategoryPlot))
                                continue;

                            // Get the axis and add it to the multi axis chart plot
                            CategoryPlot axisPlot = (CategoryPlot) axisChart.getPlot();
                            mainCatPlot.setRangeAxis(axisNumber, axisPlot.getRangeAxis());
                            mainCatPlot.setRangeAxisLocation(axisNumber, getChartAxisLocation(ax));

                            // Add the data set and map it to the recently added axis
                            mainCatPlot.setDataset(axisNumber, axisPlot.getDataset());
                            mainCatPlot.mapDatasetToRangeAxis(axisNumber, axisNumber);

                            // Set the renderer to use to draw the dataset.
                            mainCatPlot.setRenderer(axisNumber, axisPlot.getRenderer());

                            // Handle any color series for this chart
                            configureAxisSeriesColors(axisPlot.getRenderer(), chartAxis.getPlot());
                        } else if (mainPlot instanceof XYPlot) {
                            XYPlot mainXyPlot = (XYPlot) mainPlot;
                            if (!(axisChart.getPlot() instanceof XYPlot))
                                continue;

                            // Get the axis and add it to the multi axis chart plot
                            XYPlot axisPlot = (XYPlot) axisChart.getPlot();
                            mainXyPlot.setRangeAxis(axisNumber, axisPlot.getRangeAxis());
                            mainXyPlot.setRangeAxisLocation(axisNumber, getChartAxisLocation(ax));

                            // Add the data set and map it to the recently added axis
                            mainXyPlot.setDataset(axisNumber, axisPlot.getDataset());
                            mainXyPlot.mapDatasetToRangeAxis(axisNumber, axisNumber);

                            // Set the renderer to use to draw the dataset.
                            mainXyPlot.setRenderer(axisNumber, axisPlot.getRenderer());

                            // Handle any color series for this chart
                            configureAxisSeriesColors(axisPlot.getRenderer(), chartAxis.getPlot());
                        }
                    }
                }
            }
        } catch (JRException e) {
            throw new JRRuntimeException(e);
        }

        rectangle = new Rectangle2D.Double(0, 0, chart.getWidth(), chart.getHeight());
    } finally {
        Thread.currentThread().setContextClassLoader(oldLoader);
    }
    return ChartUtil.getInstance(jContext).getChartRenderableFactory(renderType).getRenderable(jContext,
            jfreeChart, null, rectangle);
}

From source file:org.jfree.chart.demo.MultipleAxisDemo2.java

/**
 * Creates the demo chart.//from   w ww. j a  v a2 s .  c  o m
 * 
 * @return The chart.
 */
private JFreeChart createChart() {

    final XYDataset dataset1 = createDataset("Series 1", 100.0, new Minute(), 200);

    final JFreeChart chart = ChartFactory.createTimeSeriesChart("Multiple Axis Demo 2", "Time of Day",
            "Primary Range Axis", dataset1, true, true, false);

    chart.setBackgroundPaint(Color.white);
    final XYPlot plot = chart.getXYPlot();
    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    //        plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));

    final StandardXYItemRenderer renderer = (StandardXYItemRenderer) plot.getRenderer();
    renderer.setPaint(Color.black);

    // DOMAIN AXIS 2
    final NumberAxis xAxis2 = new NumberAxis("Domain Axis 2");
    xAxis2.setAutoRangeIncludesZero(false);
    plot.setDomainAxis(1, xAxis2);

    // RANGE AXIS 2
    final NumberAxis yAxis2 = new NumberAxis("Range Axis 2");
    plot.setRangeAxis(1, yAxis2);
    plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);

    final XYDataset dataset2 = createDataset("Series 2", 1000.0, new Minute(), 170);
    plot.setDataset(1, dataset2);
    plot.mapDatasetToDomainAxis(1, 1);
    plot.mapDatasetToRangeAxis(1, 1);

    return chart;

}

From source file:uk.co.moonsit.sockets.GraphClient.java

private void setAxes(XYPlot plot, int[] axesIndex) {

    for (int i = 0; i < datasets.length; i++) {
        plot.setRangeAxis(axesIndex[i] - 1, getTheRangeAxis(axesIndex[i] - 1));
        AxisLocation axloc;//from  w w w.j  ava  2s.co  m
        if (i % 2 == 0) {
            axloc = AxisLocation.BOTTOM_OR_LEFT;
            //System.out.print("L ");
        } else {
            axloc = AxisLocation.BOTTOM_OR_RIGHT;
            //System.out.print("R ");
        }
        plot.setRangeAxisLocation(i, axloc);
        plot.setDataset(i, datasets[i]);
        //System.out.println(i + " " + (axesIndex[i] - 1));
        plot.mapDatasetToRangeAxis(i, axesIndex[i] - 1);
        final StandardXYItemRenderer renderer = new StandardXYItemRenderer();
        //renderer2.setSeriesPaint(0, Color.black);
        plot.setRenderer(i, renderer);
    }
}

From source file:org.griphyn.vdl.karajan.monitor.monitors.swing.GraphPanel.java

private void addSeries(Series<?> series) {
    Unit unit = series.getUnit();//from   w w  w.j  av a  2s  .  com
    XYPlot plot = chart.getXYPlot();
    Integer datasetIndex = datasetMapping.get(unit);
    TimeSeriesCollection col;
    if (datasetIndex == null) {
        col = new TimeSeriesCollection();
        int nextIndex = getNextDatasetIndex(plot);
        datasetMapping.put(unit, nextIndex);
        plot.setDataset(nextIndex, col);
        plot.setRenderer(nextIndex, new XYLineAndShapeRenderer(true, false));

        NumberAxis axis = new AutoNumberAxis(unit);
        plot.setRangeAxis(nextIndex, axis);
        plot.mapDatasetToRangeAxis(nextIndex, nextIndex);

        seriesMapping.put(unit, new ArrayList<String>());
    } else {
        col = (TimeSeriesCollection) plot.getDataset(datasetIndex);
    }
    TimeSeries ts = new SeriesWrapper(series, sampler);
    seriesMapping.get(unit).add(series.getKey());
    col.addSeries(ts);
    setColor(series.getKey(), palette.allocate());
}

From source file:com.hazelcast.monitor.server.MChartGenerator.java

@Override
protected void afterPlot(List<? super InstanceStatistics> list, JFreeChart chart, XYPlot plot) {
    NumberAxis sizeAxis = (NumberAxis) plot.getRangeAxis(0);
    Font labelFont = sizeAxis.getLabelFont();
    Paint labelPaint = sizeAxis.getLabelPaint();
    TimeSeries tm = new TimeSeries("memory");
    for (int i = 0; i < list.size(); i++) {
        double memory = 0;
        MapStatistics mapStatistics = (MapStatistics) list.get(i);
        for (MapStatistics.LocalMapStatistics localMapStatistics : mapStatistics.getListOfLocalStats()) {
            memory = memory + localMapStatistics.ownedEntryMemoryCost + localMapStatistics.backupEntryMemoryCost
                    + localMapStatistics.markedAsRemovedMemoryCost;
        }//from  w ww . j a  va2  s  .  co  m
        double mem = new Double(memory / (double) (1024 * 1024));
        tm.addOrUpdate(new Second(((MapStatistics) list.get(i)).getCreatedDate()), mem);
    }
    NumberAxis memoryAxis = new NumberAxis("memory (MB)");
    memoryAxis.setAutoRange(true);
    memoryAxis.setAutoRangeIncludesZero(false);
    plot.setDataset(1, new TimeSeriesCollection(tm));
    plot.setRangeAxis(1, memoryAxis);
    plot.mapDatasetToRangeAxis(1, 1);
    plot.setRenderer(1, new StandardXYItemRenderer());
    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    increaseRange(memoryAxis);
    memoryAxis.setLabelFont(labelFont);
    memoryAxis.setLabelPaint(labelPaint);
}

From source file:com.vgi.mafscaling.VECalc.java

protected void createChart(JPanel plotPanel, String xAxisName, String yAxisName) {
    JFreeChart chart = ChartFactory.createScatterPlot(null, null, null, null, PlotOrientation.VERTICAL, false,
            true, false);//from  w  w  w.  j  av  a2s.com
    chart.setBorderVisible(true);

    chartPanel = new ChartPanel(chart, true, true, true, true, true);
    chartPanel.setAutoscrolls(true);
    chartPanel.setMouseZoomable(false);

    GridBagConstraints gbl_chartPanel = new GridBagConstraints();
    gbl_chartPanel.anchor = GridBagConstraints.CENTER;
    gbl_chartPanel.insets = new Insets(3, 3, 3, 3);
    gbl_chartPanel.weightx = 1.0;
    gbl_chartPanel.weighty = 1.0;
    gbl_chartPanel.fill = GridBagConstraints.BOTH;
    gbl_chartPanel.gridx = 0;
    gbl_chartPanel.gridy = 1;
    plotPanel.add(chartPanel, gbl_chartPanel);

    XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer();
    lineRenderer.setUseFillPaint(true);
    lineRenderer.setBaseToolTipGenerator(
            new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                    new DecimalFormat("0.00"), new DecimalFormat("0.00")));

    Stroke stroke = new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, null, 0.0f);
    lineRenderer.setSeriesStroke(0, stroke);
    lineRenderer.setSeriesPaint(0, Color.RED);
    lineRenderer.setSeriesShape(0, ShapeUtilities.createDiamond((float) 2.5));

    lineRenderer.setLegendItemLabelGenerator(new StandardXYSeriesLabelGenerator() {
        private static final long serialVersionUID = 7593430826693873496L;

        public String generateLabel(XYDataset dataset, int series) {
            XYSeries xys = ((XYSeriesCollection) dataset).getSeries(series);
            return xys.getDescription();
        }
    });

    NumberAxis xAxis = new NumberAxis(xAxisName);
    xAxis.setAutoRangeIncludesZero(false);
    NumberAxis yAxis = new NumberAxis(yAxisName);
    yAxis.setAutoRangeIncludesZero(false);

    XYSeriesCollection lineDataset = new XYSeriesCollection();

    XYPlot plot = chart.getXYPlot();
    plot.setRangePannable(true);
    plot.setDomainPannable(true);
    plot.setDomainGridlinePaint(Color.DARK_GRAY);
    plot.setRangeGridlinePaint(Color.DARK_GRAY);
    plot.setBackgroundPaint(new Color(224, 224, 224));

    plot.setDataset(0, lineDataset);
    plot.setRenderer(0, lineRenderer);
    plot.setDomainAxis(0, xAxis);
    plot.setRangeAxis(0, yAxis);
    plot.mapDatasetToDomainAxis(0, 0);
    plot.mapDatasetToRangeAxis(0, 0);

    LegendTitle legend = new LegendTitle(plot.getRenderer());
    legend.setItemFont(new Font("Arial", 0, 10));
    legend.setPosition(RectangleEdge.TOP);
    chart.addLegend(legend);
}

From source file:de.atomfrede.tools.evalutation.tools.plot.TimePlot.java

@Override
protected JFreeChart createChart(XYDatasetWrapper... datasetWrappers) {
    XYDatasetWrapper mainDataset = datasetWrappers[0];

    JFreeChart chart = ChartFactory.createTimeSeriesChart(mainDataset.getSeriesName(), "Time",
            mainDataset.getSeriesName(), mainDataset.getDataset(), true, true, false);

    XYPlot plot = (XYPlot) chart.getPlot();
    // all adjustments for first/main dataset
    plot.getRangeAxis(0).setLowerBound(mainDataset.getMinimum());
    plot.getRangeAxis(0).setUpperBound(mainDataset.getMaximum());
    // some additional "design" stuff for the plot
    plot.getRenderer(0).setSeriesPaint(0, mainDataset.getSeriesColor());
    plot.getRenderer(0).setSeriesStroke(0, new BasicStroke(mainDataset.getStroke()));

    for (int i = 1; i < datasetWrappers.length; i++) {
        XYDatasetWrapper wrapper = datasetWrappers[i];
        plot.setDataset(i, wrapper.getDataset());
        chart.setTitle(chart.getTitle().getText() + "/" + wrapper.getSeriesName());

        NumberAxis axis = new NumberAxis(wrapper.getSeriesName());
        plot.setRangeAxis(i, axis);//from w w  w. j  a v  a 2 s.c o m
        plot.setRangeAxisLocation(i, AxisLocation.BOTTOM_OR_RIGHT);

        plot.getRangeAxis(i).setLowerBound(wrapper.getMinimum() - 15.0);
        plot.getRangeAxis(i).setUpperBound(wrapper.getMaximum() + 15.0);
        // map the second dataset to the second axis
        plot.mapDatasetToRangeAxis(i, i);

        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setBaseShapesVisible(false);
        renderer.setSeriesStroke(0, new BasicStroke(wrapper.getStroke()));
        plot.setRenderer(i, renderer);
        plot.getRenderer(i).setSeriesPaint(0, wrapper.getSeriesColor());
    }
    // change the background and gridline colors
    plot.setBackgroundPaint(Color.white);
    plot.setDomainMinorGridlinePaint(Color.LIGHT_GRAY);
    plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
    plot.setRangeGridlinePaint(Color.LIGHT_GRAY);

    // format the date axis
    DateAxis axis = (DateAxis) plot.getDomainAxis();

    axis.setDateFormatOverride(new SimpleDateFormat("dd.MM HH:mm"));
    axis.setTickUnit(new DateTickUnit(DateTickUnitType.HOUR, 1));
    axis.setVerticalTickLabels(true);
    return chart;
}