Search in sources :

Example 36 with XYPlot

use of org.jfree.chart.plot.XYPlot in project Course_Generator by patrovite.

the class JPanelAnalysisTimeDist method CreateChart.

private JFreeChart CreateChart(XYDataset dataset1, XYDataset dataset2) {
    JFreeChart chart = ChartFactory.createXYAreaChart("", // "Distance"
    bundle.getString("JPanelAnalysisTimeDist.labelX"), // "Elevation"
    bundle.getString("JPanelAnalysisTimeDist.labelY1"), // data
    dataset1, // include legend
    PlotOrientation.VERTICAL, // include legend
    false, // tooltips
    true, // urls
    false);
    // -- Background color
    chart.setBackgroundPaint(Color.white);
    chart.setAntiAlias(true);
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.white);
    plot.setDomainGridlinePaint(Color.gray);
    plot.setRangeGridlinePaint(Color.gray);
    plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
    XYAreaRenderer renderer = new XYAreaRenderer();
    renderer.setSeriesPaint(0, new Color(0x99, 0xff, 0x00));
    renderer.setOutline(true);
    renderer.setSeriesOutlineStroke(0, new BasicStroke(2.0f));
    plot.setRenderer(0, renderer);
    // "Time"
    NumberAxis rangeAxis2 = new NumberAxis(bundle.getString("JPanelAnalysisTimeDist.labelY2"));
    plot.setRangeAxis(1, rangeAxis2);
    plot.setDataset(1, dataset2);
    plot.setRangeAxis(1, rangeAxis2);
    plot.mapDatasetToRangeAxis(1, 1);
    StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();
    renderer2.setSeriesPaint(0, Color.red);
    plot.setRenderer(1, renderer2);
    // -- Select the display order
    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    return chart;
}
Also used : BasicStroke(java.awt.BasicStroke) XYAreaRenderer(org.jfree.chart.renderer.xy.XYAreaRenderer) NumberAxis(org.jfree.chart.axis.NumberAxis) XYPlot(org.jfree.chart.plot.XYPlot) StandardXYItemRenderer(org.jfree.chart.renderer.xy.StandardXYItemRenderer) Color(java.awt.Color) JFreeChart(org.jfree.chart.JFreeChart)

Example 37 with XYPlot

use of org.jfree.chart.plot.XYPlot in project xwiki-platform by xwiki.

the class TimePlotFactory method create.

@Override
public Plot create(DataSource dataSource, ChartParams params) throws GenerateException, DataSourceException {
    Class rendererClass = params.getClass(ChartParams.RENDERER);
    XYItemRenderer renderer;
    if (rendererClass != null) {
        try {
            Constructor ctor = rendererClass.getConstructor(new Class[] {});
            renderer = (XYItemRenderer) ctor.newInstance(new Object[] {});
        } catch (Throwable e) {
            throw new GenerateException(e);
        }
    } else {
        renderer = new XYLineAndShapeRenderer();
    }
    ChartCustomizer.customizeXYItemRenderer(renderer, params);
    DateAxis domainAxis = new DateAxis();
    ChartCustomizer.customizeDateAxis(domainAxis, params, ChartParams.AXIS_DOMAIN_PREFIX);
    NumberAxis rangeAxis = new NumberAxis();
    // override default
    rangeAxis.setAutoRangeIncludesZero(false);
    ChartCustomizer.customizeNumberAxis(rangeAxis, params, ChartParams.AXIS_RANGE_PREFIX);
    XYDataset dataset = TimeSeriesCollectionFactory.getInstance().create(dataSource, params);
    XYPlot plot = new XYPlot(dataset, domainAxis, rangeAxis, renderer);
    ChartCustomizer.customizeXYPlot(plot, params);
    return plot;
}
Also used : DateAxis(org.jfree.chart.axis.DateAxis) NumberAxis(org.jfree.chart.axis.NumberAxis) XYPlot(org.jfree.chart.plot.XYPlot) Constructor(java.lang.reflect.Constructor) XYLineAndShapeRenderer(org.jfree.chart.renderer.xy.XYLineAndShapeRenderer) XYDataset(org.jfree.data.xy.XYDataset) XYItemRenderer(org.jfree.chart.renderer.xy.XYItemRenderer) GenerateException(com.xpn.xwiki.plugin.charts.exceptions.GenerateException)

Example 38 with XYPlot

use of org.jfree.chart.plot.XYPlot in project xwiki-platform by xwiki.

the class XYPlotFactory method create.

public Plot create(DataSource dataSource, XYItemRenderer renderer, ChartParams params) throws GenerateException, DataSourceException {
    NumberAxis domainAxis = new NumberAxis();
    NumberAxis rangeAxis = new NumberAxis();
    ChartCustomizer.customizeNumberAxis(domainAxis, params, ChartParams.AXIS_DOMAIN_PREFIX);
    ChartCustomizer.customizeNumberAxis(rangeAxis, params, ChartParams.AXIS_RANGE_PREFIX);
    XYDataset dataset = TableXYDatasetFactory.getInstance().create(dataSource, params);
    XYPlot plot = new XYPlot(dataset, domainAxis, rangeAxis, renderer);
    ChartCustomizer.customizeXYPlot(plot, params);
    return plot;
}
Also used : NumberAxis(org.jfree.chart.axis.NumberAxis) XYPlot(org.jfree.chart.plot.XYPlot) XYDataset(org.jfree.data.xy.XYDataset)

Example 39 with XYPlot

use of org.jfree.chart.plot.XYPlot in project xwiki-platform by xwiki.

the class AbstractXYPlotGenerator method generate.

@Override
public Plot generate(ChartModel model, Map<String, String> parameters) throws PlotGeneratorException {
    XYDataset dataset;
    ValueAxis domainAxis;
    ValueAxis rangeAxis;
    if (model.getDataset() instanceof XYDataset) {
        dataset = (XYDataset) model.getDataset();
    } else {
        throw new PlotGeneratorException("Incompatible dataset for xy plot.");
    }
    if (model.getAxis(0) instanceof ValueAxis) {
        domainAxis = (ValueAxis) model.getAxis(0);
    } else {
        throw new PlotGeneratorException("Incompatible axis 0 for xy plot.");
    }
    if (model.getAxis(1) instanceof ValueAxis) {
        rangeAxis = (ValueAxis) model.getAxis(1);
    } else {
        throw new PlotGeneratorException("Incompatible axis 1 for xy plot.");
    }
    return new XYPlot(dataset, domainAxis, rangeAxis, getRenderer(parameters));
}
Also used : XYPlot(org.jfree.chart.plot.XYPlot) ValueAxis(org.jfree.chart.axis.ValueAxis) XYDataset(org.jfree.data.xy.XYDataset) PlotGeneratorException(org.xwiki.chart.PlotGeneratorException)

Example 40 with XYPlot

use of org.jfree.chart.plot.XYPlot in project java-messenger-watchdog by chatbot-workshop.

the class SiteStatisticsChart method generateStatImage.

public static byte[] generateStatImage(SiteStatistic statistics) throws IOException {
    XYSeries series = new XYSeries(statistics.url().toString());
    statistics.data().forEach(series::add);
    XYSeriesCollection seriesCollection = new XYSeriesCollection();
    seriesCollection.addSeries(series);
    JFreeChart chart = ChartFactory.createXYLineChart(statistics.url().toString(), "seconds ago", "milliseconds", seriesCollection, PlotOrientation.VERTICAL, false, false, false);
    XYPlot xyPlot = chart.getXYPlot();
    xyPlot.setBackgroundPaint(new Color(250, 250, 250));
    xyPlot.setDomainGridlinePaint(Color.lightGray);
    xyPlot.setRangeGridlinePaint(Color.lightGray);
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    ChartUtils.writeChartAsPNG(outputStream, chart, 400, 300);
    return outputStream.toByteArray();
}
Also used : XYSeries(org.jfree.data.xy.XYSeries) XYPlot(org.jfree.chart.plot.XYPlot) Color(java.awt.Color) ByteArrayOutputStream(java.io.ByteArrayOutputStream) XYSeriesCollection(org.jfree.data.xy.XYSeriesCollection) JFreeChart(org.jfree.chart.JFreeChart)

Aggregations

XYPlot (org.jfree.chart.plot.XYPlot)160 JFreeChart (org.jfree.chart.JFreeChart)98 NumberAxis (org.jfree.chart.axis.NumberAxis)49 Color (java.awt.Color)43 XYLineAndShapeRenderer (org.jfree.chart.renderer.xy.XYLineAndShapeRenderer)35 ValueAxis (org.jfree.chart.axis.ValueAxis)34 DateAxis (org.jfree.chart.axis.DateAxis)33 XYDataset (org.jfree.data.xy.XYDataset)30 SimpleDateFormat (java.text.SimpleDateFormat)22 XYSeries (org.jfree.data.xy.XYSeries)22 TimeSeriesCollection (org.jfree.data.time.TimeSeriesCollection)21 XYSeriesCollection (org.jfree.data.xy.XYSeriesCollection)21 XYItemRenderer (org.jfree.chart.renderer.xy.XYItemRenderer)18 BasicStroke (java.awt.BasicStroke)16 Font (java.awt.Font)16 ChartPanel (org.jfree.chart.ChartPanel)16 StandardXYToolTipGenerator (org.jfree.chart.labels.StandardXYToolTipGenerator)16 DecimalFormat (java.text.DecimalFormat)13 Map (java.util.Map)13 LegendTitle (org.jfree.chart.title.LegendTitle)13