List of usage examples for org.jfree.chart JFreeChart getXYPlot
public XYPlot getXYPlot()
From source file:org.knime.knip.core.ui.imgviewer.panels.HistogramBC.java
/** * Returns a JFreeChart containing data from the provided histogram. * * @param title//ww w . j ava 2 s . co m * @param bund * @return */ private JFreeChart getChart(final String title, final HistogramBundle bund) { List<XYSeries> series = new ArrayList<>(); for (int h = 0; h < bund.getHistogramCount(); h++) { final XYSeries xys = new XYSeries("histo" + h); final long total = bund.getHistogram(h).getBinCount(); for (long i = 0; i < total; i++) { xys.add(i, bund.getHistogram(h).frequency(i)); } series.add(xys); } final JFreeChart chart = createChart(title, series); if (bund.getMinBin() != -1) { chart.getXYPlot().addDomainMarker(new ValueMarker(bund.getMinBin(), Color.black, new BasicStroke(1))); } if (bund.getMaxBin() != -1) { chart.getXYPlot().addDomainMarker(new ValueMarker(bund.getMaxBin(), Color.black, new BasicStroke(1))); } if (displaySlopeLine(bund)) { chart.getXYPlot().addAnnotation(slopeLine()); } // set to knime gray chart.setBackgroundPaint(new Color(238, 238, 238)); return chart; }
From source file:org.drugis.addis.gui.ConvergencePlotsDialog.java
private JFreeChart createRhatChart(final XYDataset dataset) { final JFreeChart RhatChart = ChartFactory.createXYLineChart("Iterative PSRF Plot", "Iteration No.", "R-Hat(p)", dataset, PlotOrientation.VERTICAL, false, true, false); RhatChart.setBackgroundPaint(Color.white); final XYPlot RhatPlot = RhatChart.getXYPlot(); RhatPlot.setDomainGridlinePaint(Color.white); RhatPlot.setRangeGridlinePaint(Color.white); final NumberAxis rangeAxis = (NumberAxis) RhatPlot.getRangeAxis(); rangeAxis.setAutoRange(true);//from w ww . j av a 2s .c o m rangeAxis.setAutoRangeIncludesZero(false); return RhatChart; }
From source file:org.jfree.chart.demo.LineChartDemo4.java
/** * Creates a new demo.// w w w. j a v a2 s. c om * * @param title the frame title. */ public LineChartDemo4(final String title) { super(title); // create a dataset... final XYDataset dataset = new SampleXYDataset(); // create the chart... final JFreeChart chart = ChartFactory.createXYLineChart("Line Chart Demo 4", // chart title "X", // x axis label "Y", // y axis label dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips false // urls ); final XYPlot plot = chart.getXYPlot(); plot.getDomainAxis().setLowerMargin(0.0); plot.getDomainAxis().setUpperMargin(0.0); // add the chart to a panel... final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(chartPanel); }
From source file:org.jfree.chart.demo.TimeSeriesDemo11.java
/** * A demonstration application showing how to... * * @param title the frame title./* w ww. ja va 2 s . c om*/ */ public TimeSeriesDemo11(final String title) { super(title); final JPanel panel = new JPanel(new GridLayout(2, 2)); panel.setPreferredSize(new java.awt.Dimension(800, 600)); final Day today = new Day(); final XYDataset dataset = createDataset("Series 1", 100.0, today, 365); final JFreeChart chart1 = createChart("Chart 1 : 1 Year", dataset); final ChartPanel chartPanel1 = new ChartPanel(chart1); panel.add(chartPanel1); final JFreeChart chart2 = createChart("Chart 2 : 6 Months", dataset); final SerialDate t = today.getSerialDate(); final SerialDate t6m = SerialDate.addMonths(-6, t); final Day sixMonthsAgo = new Day(t6m); final DateAxis axis2 = (DateAxis) chart2.getXYPlot().getDomainAxis(); axis2.setRange(sixMonthsAgo.getStart(), today.getEnd()); final ChartPanel chartPanel2 = new ChartPanel(chart2); panel.add(chartPanel2); final JFreeChart chart3 = createChart("Chart 3 : 3 Months", dataset); final SerialDate t3m = SerialDate.addMonths(-3, t); final Day threeMonthsAgo = new Day(t3m); final DateAxis axis3 = (DateAxis) chart3.getXYPlot().getDomainAxis(); axis3.setRange(threeMonthsAgo.getStart(), today.getEnd()); final ChartPanel chartPanel3 = new ChartPanel(chart3); panel.add(chartPanel3); final JFreeChart chart4 = createChart("Chart 4 : 1 Month", dataset); final SerialDate t1m = SerialDate.addMonths(-1, t); final Day oneMonthsAgo = new Day(t1m); final DateAxis axis4 = (DateAxis) chart4.getXYPlot().getDomainAxis(); axis4.setRange(oneMonthsAgo.getStart(), today.getEnd()); final ChartPanel chartPanel4 = new ChartPanel(chart4); panel.add(chartPanel4); setContentPane(panel); }
From source file:playground.artemc.socialCost.MeanTravelTimeWriter.java
/** * @return a graphic showing the number of agents in the evacuated area *//* w w w . ja v a 2s.com*/ private JFreeChart getGraphic(String[] modeNames, double data[][]) { final XYSeriesCollection xyData = new XYSeriesCollection(); for (int j = 0; j < modeNames.length; j++) { String modeName = modeNames[j]; double[] d = data[j]; XYSeries dataSerie = new XYSeries(modeName, false, true); for (int i = 0; i < d.length; i++) { dataSerie.add(i, d[i]); } xyData.addSeries(dataSerie); } // final JFreeChart chart = ChartFactory.createXYStepChart( final JFreeChart chart = ChartFactory.createXYLineChart("mean trip travel time, all transport modes modes", "iteration", "travel time", xyData, PlotOrientation.VERTICAL, true, // legend false, // tooltips false // urls ); XYPlot plot = chart.getXYPlot(); final CategoryAxis axis1 = new CategoryAxis("hour"); axis1.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 7)); plot.setDomainAxis(new NumberAxis("time")); return chart; }
From source file:fi.smaa.jsmaa.gui.views.CriterionView.java
private JPanel buildValueFunctionChartPanel(ScaleCriterion criterion) { UtilityFunctionDataset dataset = new UtilityFunctionDataset(criterion); JFreeChart chart = ChartFactory.createXYLineChart("", "x", "v(x)", dataset, PlotOrientation.VERTICAL, false, true, true);/*from w w w .j a va 2 s . c o m*/ final XYPlot plot = chart.getXYPlot(); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); plot.setRenderer(0, renderer); renderer.setSeriesPaint(0, Color.black); renderer.setSeriesShape(0, ShapeUtilities.createDiamond(3.0f)); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); ValueAxis rAxis = plot.getRangeAxis(); rAxis.setAutoRange(false); rAxis.setRange(new Range(-0.03, 1.03)); ValueAxis dAxis = plot.getDomainAxis(); dAxis.setLowerMargin(0.03); dAxis.setUpperMargin(0.03); ChartPanel chartPanel = new ChartPanel(chart, false, true, true, false, true); chartPanel.addChartMouseListener(new ValueFunctionMouseListener(chartPanel, criterion, parent)); chartPanel.setDomainZoomable(false); chartPanel.setRangeZoomable(false); chartPanel.setDisplayToolTips(true); chartPanel.setToolTipText("Click to add/remove partial value function points"); chartPanel.setMouseWheelEnabled(false); chartPanel.setMouseZoomable(false); plot.setDomainCrosshairLockedOnData(false); plot.setRangeCrosshairLockedOnData(false); plot.setDomainCrosshairVisible(true); plot.setRangeCrosshairVisible(true); FormLayout layout = new FormLayout("left:pref", "p, 3dlu, p"); PanelBuilder builder = new PanelBuilder(layout); CellConstraints cc = new CellConstraints(); builder.add(chartPanel, cc.xy(1, 1)); builder.add(new ValueFunctionPointsPanel(criterion), cc.xy(1, 3)); return builder.getPanel(); }
From source file:fr.crnan.videso3d.trajectography.Track2DView.java
public Track2DView(VidesoTrack track) { if (track instanceof LPLNTrack) { XYSeries dataset = new XYSeries(track.getName()); List<ValueMarker> markers = new LinkedList<ValueMarker>(); double distance = 0; LPLNTrackPoint last = null;/*ww w .ja va2 s . c o m*/ for (LPLNTrackPoint p : ((LPLNTrack) track).getTrackPoints()) { if (last != null) { distance += Position.ellipsoidalDistance(last.getPosition(), p.getPosition(), Earth.WGS84_EQUATORIAL_RADIUS, Earth.WGS84_POLAR_RADIUS) / LatLonCautra.NM; } dataset.add(distance, p.getElevation() / 30.48); ValueMarker marker = new ValueMarker(distance); marker.setLabel(p.getName()); marker.setLabelAnchor(RectangleAnchor.TOP_RIGHT); marker.setLabelTextAnchor(TextAnchor.TOP_CENTER); markers.add(marker); last = p; } JFreeChart chart = ChartFactory.createXYLineChart("Coupe 2D", "NM", "FL", new XYSeriesCollection(dataset), PlotOrientation.VERTICAL, false, false, false); for (ValueMarker m : markers) { chart.getXYPlot().addDomainMarker(m); } //ajout des secteurs AIP avec des XYPolygonAnnotation Collection<Object> secteurs; AIPController controller = (AIPController) DatasManager.getController(DatasManager.Type.AIP); secteurs = controller.getObjects(AIP.CTL); for (int i = 0; i <= 600; i += 10) { last = null; Secteur3D lastSecteur = null; double lastBoundary = 0.0; for (LPLNTrackPoint point : ((LPLNTrack) track).getTrackPoints()) { Position p = new Position(point.getPosition(), i * 30.48); //calcul du secteur contenant le point en cours Iterator<Object> iterator = secteurs.iterator(); boolean contain = false; Secteur3D secteur = null; while (iterator.hasNext() && !contain) { Secteur3D temp = (Secteur3D) iterator.next(); if (temp.contains(p)) { contain = true; secteur = temp; } } //si premier point, on enregistre simplement le secteur trouv if (last == null) { lastSecteur = secteur; } else { if (lastSecteur != secteur) { //si le secteur a chang, on dessine le secteur prcdent //sauf si ce dernier n'existait pas if (lastSecteur != null) { //dans ce cas, on calcule le point d'intersection entre le secteur et le segment form par les deux points //lastSecteur != null => last !=null Set<Point2D> intersects = lastSecteur .getIntersections(new Line2D.Double(last.getLatitude(), last.getLongitude(), p.getLatitude().degrees, p.getLongitude().degrees), true); if (!intersects.isEmpty()) { Point2D intersect = intersects.iterator().next(); distance = Position.ellipsoidalDistance( new LatLonCautra(intersect.getX(), intersect.getY()), last.getPosition(), Earth.WGS84_EQUATORIAL_RADIUS, Earth.WGS84_POLAR_RADIUS) / LatLonCautra.NM; //et ajout de l'annotation XYPolygonAnnotation annotation = new XYPolygonAnnotation( new double[] { lastBoundary, i, lastBoundary + distance, i, lastBoundary + distance, i + 10, lastBoundary, i + 10 }); chart.getXYPlot().addAnnotation(annotation); lastBoundary += distance; } } lastSecteur = secteur; } } last = point; } } //espace en haut pour les marqueurs chart.getXYPlot().getRangeAxis().setUpperMargin(0.05); ChartPanel chartPanel = new ChartPanel(chart); this.setContentPane(chartPanel); this.pack(); } }
From source file:org.squale.squaleweb.util.graph.AreaMaker.java
/** * @return le diagramme JFreeChart/*from w ww. j av a 2 s . c om*/ */ protected JFreeChart getChart() { JFreeChart retChart = super.getChart(); if (null == retChart) { retChart = ChartFactory.createXYAreaChart(mTitle, mXLabel, mYLabel, mDataSet, PlotOrientation.VERTICAL, false, false, false); final XYPlot plot = retChart.getXYPlot(); final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setNumberFormatOverride(new DecimalFormat("########0.0")); // rangeAxis.setStandardTickUnits(NumberAxis.createStandardTickUnits()); // Format de l'axe des dates final ValueAxis domainAxis = new DateAxis(mXLabel); domainAxis.setLowerMargin(0.0); domainAxis.setUpperMargin(0.0); ((DateAxis) domainAxis).setDateFormatOverride(mDateFormat); plot.setDomainAxis(domainAxis); super.setChart(retChart); } return retChart; }
From source file:wattsup.jsdk.ui.LineChartPanelSupport.java
@Override public JFreeChart createChart() { this.timeSeries_ = new TimeSeriesCollection(); this.dataset_ = new TranslatingXYDataset(this.timeSeries_); JFreeChart chart = ChartFactory.createTimeSeriesChart(this.getTitle(), null, this.getAxisLabel(), this.dataset_, true, true, false); chart.setBackgroundPaint(getBackground()); XYPlot xyPlot = chart.getXYPlot(); xyPlot.setOrientation(PlotOrientation.VERTICAL); xyPlot.setBackgroundPaint(Color.WHITE); xyPlot.setDomainGridlinePaint(Color.BLACK.darker()); xyPlot.setRangeGridlinePaint(Color.BLACK.darker()); xyPlot.setAxisOffset(new RectangleInsets(5.0D, 5.0D, 5.0D, 5.0D)); xyPlot.setDomainCrosshairLockedOnData(true); xyPlot.setRangeCrosshairVisible(true); chart.setAntiAlias(true);//from w ww . j a v a 2 s. c o m return chart; }
From source file:edu.emory.library.tast.database.graphs.GraphTypeXY.java
public JFreeChart createChart(Object[] data) { CategoryTableXYDataset dataset = new CategoryTableXYDataset(); JFreeChart chart = ChartFactory.createXYLineChart(null, getSelectedIndependentVariable().getLabel(), TastResource.getText("components_charts_barvalue"), dataset, PlotOrientation.VERTICAL, true, true, false);//from w w w .j a va 2 s . com Format formatter = getSelectedIndependentVariable().getFormat(); XYPlot plot = chart.getXYPlot(); if (formatter != null) ((NumberAxis) plot.getDomainAxis()).setNumberFormatOverride((NumberFormat) formatter); chart.setBackgroundPaint(Color.white); List allDataSeries = getDataSeries(); for (int j = 0; j < allDataSeries.size(); j++) { DataSeries dataSearies = (DataSeries) allDataSeries.get(j); String dataSeriesLabel = dataSearies.formatForDisplay(); for (int i = 0; i < data.length; i++) { Object[] row = (Object[]) data[i]; Number x = (Number) row[0]; Number y = (Number) row[j + 1]; if (x != null && y != null) dataset.add(x.doubleValue(), y.doubleValue(), dataSeriesLabel); } } LegendItemCollection legendItems = chart.getPlot().getLegendItems(); for (int i = 0; i < legendItems.getItemCount(); i++) { LegendItem legendItem = legendItems.get(i); DataSeries dataSearies = (DataSeries) allDataSeries.get(i); if (legendItem.getFillPaint() instanceof Color) { dataSearies.setColor(((Color) legendItem.getFillPaint())); } } return chart; }