List of usage examples for org.jfree.chart.renderer.xy XYBarRenderer setBaseItemLabelGenerator
@Override public void setBaseItemLabelGenerator(XYItemLabelGenerator generator)
From source file:pisco.batch.visu.BatchingChartFactory.java
public static XYPlot createLatenessPlot(Batch[] batches) { final Paint[] palette = makePalette(batches.length); XYBarRenderer renderer = new XYBarRendererPaletteBySeries(palette); renderer.setUseYInterval(true);/*from w ww . j a va 2 s. c om*/ renderer.setDrawBarOutline(true); final LatenessLabelToolTipGenerator bpg = new LatenessLabelToolTipGenerator(batches); renderer.setBaseItemLabelGenerator(bpg); renderer.setBaseItemLabelsVisible(true); renderer.setBaseToolTipGenerator(bpg); renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER)); XYPlot plot = new XYPlot(createLatenessDataset(batches), null, createIntegerAxis("Batches"), renderer); plot.setRangeGridlinesVisible(false); makeDueDateMarkers(plot, batches, palette); return plot; }
From source file:org.fhcrc.cpl.viewer.gui.SpectrumChartFactory.java
protected static XYPlot createXYPlot(XYDataset dataset, Color[] colors) { // break up into two datasets, one for bars one for lines //LinkedList lines =new LinkedList(); //LinkedList bars = new LinkedList(); XYDataset seriesLines = new XYSeriesCollection(); XYDataset seriesBars = new XYSeriesCollection(); ((XYSeriesCollection) seriesBars).setIntervalWidth(0.0); if (dataset instanceof XYSeriesCollection) { while (0 < dataset.getSeriesCount()) { XYSeries s = ((XYSeriesCollection) dataset).getSeries(0); ((XYSeriesCollection) dataset).removeSeries(0); Comparable key = s.getKey(); boolean lines = false; if (key instanceof String) lines = ((String) key).startsWith("-"); if (lines) ((XYSeriesCollection) seriesLines).addSeries(s); else/*w w w . j ava2 s . c o m*/ ((XYSeriesCollection) seriesBars).addSeries(s); } } else { seriesBars = dataset; } NumberAxis axisDomain = new NumberAxis(); axisDomain.setAutoRange(true); axisDomain.setAutoRangeIncludesZero(false); // axisDomain.setRange(400.0, 1600.0); // NOTE: zooming in too far kills the chart, prevent this axisDomain.addChangeListener(new AxisChangeListener() { public void axisChanged(AxisChangeEvent event) { NumberAxis axis = (NumberAxis) event.getSource(); Range range = axis.getRange(); if (range.getLength() < 2.0) { //_log.info("AxisChangeListener " + range.getLength() + " " + range.toString()); double middle = range.getLowerBound() + range.getLength() / 2.0; axis.setRange(new Range(middle - 1.1, middle + 1.1)); } } }); NumberAxis axisRange = new NumberAxis(); axisRange.setAutoRange(true); axisRange.setAutoRangeIncludesZero(true); XYToolTipGenerator toolTipGenerator = new XYToolTipGenerator() { public String generateToolTip(XYDataset xyDataset, int s, int i) { double X = Math.round(xyDataset.getXValue(s, i) * 1000.0) / 1000.0; double Y = Math.round(xyDataset.getYValue(s, i) * 1000.0) / 1000.0; return "(" + X + ", " + Y + ")"; } }; XYBarRenderer barRenderer = new XYBarRenderer(); //dhmay adding 2009/09/14. As of jfree 1.0.13, shadows on by default barRenderer.setShadowVisible(false); //dhmay adding for jfreechart 1.0.6 upgrade. If this isn't here, we get a //nullPointerException in XYBarRenderer.drawItemLabel barRenderer.setBaseItemLabelGenerator(new NullLabelGenerator()); barRenderer.setSeriesItemLabelsVisible(0, true); barRenderer.setBaseToolTipGenerator(toolTipGenerator); XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer(); lineRenderer.setBaseToolTipGenerator(toolTipGenerator); XYPlot xy = new XYPlot(null, axisDomain, axisRange, null); int ds = 0; if (seriesLines.getSeriesCount() > 0) { xy.setDataset(ds, seriesLines); xy.setRenderer(ds, lineRenderer); xy.mapDatasetToRangeAxis(ds, 0); ds++; for (int i = 0; i < seriesLines.getSeriesCount(); i++) { Comparable key = ((XYSeriesCollection) seriesLines).getSeriesKey(i); boolean lines = false; if (key instanceof String) lines = ((String) key).startsWith("-"); lineRenderer.setSeriesLinesVisible(i, lines); lineRenderer.setSeriesShapesVisible(i, !lines); } } if (seriesBars.getSeriesCount() > 0) { xy.setDataset(ds, seriesBars); xy.setRenderer(ds, barRenderer); xy.mapDatasetToRangeAxis(ds, 0); ds++; } setColors(xy, colors); return xy; }
From source file:pisco.batch.visu.BatchingChartFactory.java
public static XYPlot createBatchPlot(Batch[] batches, int capacity) { final XYBarRenderer renderer = new StackedXYBarRendererPaletteByItems(makePalette(batches.length)); renderer.setShadowVisible(false);// ww w . jav a 2s . co m renderer.setShadowXOffset(0); renderer.setDrawBarOutline(true); renderer.setBaseOutlineStroke(new BasicStroke(2)); final BatchLabelToolTipGenerator lpg = new BatchLabelToolTipGenerator(); renderer.setBaseItemLabelGenerator(lpg); renderer.setBaseItemLabelsVisible(true); renderer.setBaseToolTipGenerator(lpg); XYPlot plot = new XYPlot(new BatchProcessingDataset(batches), null, createIntegerAxis("Load"), renderer); if (capacity > 0) { Marker capaMarker = createCapacityMarker(capacity, "Capacity", B_RED); plot.addRangeMarker(0, capaMarker, Layer.FOREGROUND); } return plot; }
From source file:org.talend.dataprofiler.chart.util.TopChartFactory.java
public static JFreeChart createBlockingBarChart(String title, HistogramDataset dataset) { ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme()); JFreeChart chart = ChartFactory.createHistogram(null, title, "Key frequency", dataset, //$NON-NLS-1$ PlotOrientation.VERTICAL, false, true, false); XYPlot plot = chart.getXYPlot();/*from ww w. j av a2s. c om*/ plot.getRangeAxis().setUpperMargin(0.08); // plot.getRangeAxis().setLowerBound(-0.08); decorateCategoryPlot(chart); plot.setRangeGridlinesVisible(true); XYBarRenderer renderer = new XYBarRenderer() { private static final long serialVersionUID = 4168794048090452033L; @Override public Paint getItemPaint(int row, int column) { return ChartDecorator.COLOR_LIST.get(0); } }; renderer.setBaseItemLabelsVisible(true); renderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); renderer.setBasePositiveItemLabelPosition( new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); renderer.setBaseNegativeItemLabelPosition( new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); renderer.setShadowVisible(Boolean.FALSE); plot.setRenderer(renderer); return chart; }
From source file:com.intel.stl.ui.common.view.ComponentFactory.java
public static JFreeChart createPlainHistoryChart(IntervalXYDataset dataset, XYItemLabelGenerator labelGenerator) { if (dataset == null) { throw new IllegalArgumentException("No dataset."); }/*from www . j a va2s. c om*/ JFreeChart jfreechart = ChartFactory.createXYBarChart(null, null, true, null, dataset, PlotOrientation.VERTICAL, false, true, false); XYPlot xyplot = (XYPlot) jfreechart.getPlot(); xyplot.setBackgroundPaint(null); xyplot.setOutlinePaint(null); XYBarRenderer renderer = (XYBarRenderer) xyplot.getRenderer(); renderer.setShadowVisible(false); renderer.setBaseItemLabelsVisible(true); if (labelGenerator != null) { renderer.setBaseItemLabelGenerator(labelGenerator); } renderer.setBaseItemLabelFont(UIConstants.H4_FONT); renderer.setBarPainter(new StandardXYBarPainter()); renderer.setSeriesPaint(0, UIConstants.INTEL_BLUE); // xyplot.getDomainAxis().setVisible(false); xyplot.getDomainAxis().setAxisLineVisible(true); xyplot.getDomainAxis().setTickLabelsVisible(false); NumberAxis axis = (NumberAxis) xyplot.getRangeAxis(); axis.setRangeType(RangeType.POSITIVE); axis.setVisible(false); return jfreechart; }
From source file:com.intel.stl.ui.common.view.ComponentFactory.java
public static JFreeChart createXYBarChart(String xAxisLabel, String yAxisLabel, IntervalXYDataset dataset, XYItemLabelGenerator labelGenerator) { if (dataset == null) { throw new IllegalArgumentException("No dataset."); }// w w w .j av a 2 s.c o m JFreeChart jfreechart = ChartFactory.createXYBarChart(null, xAxisLabel, false, yAxisLabel, dataset, PlotOrientation.VERTICAL, false, true, false); XYPlot xyplot = (XYPlot) jfreechart.getPlot(); xyplot.setBackgroundPaint(null); xyplot.setOutlinePaint(null); xyplot.setRangeGridlinePaint(UIConstants.INTEL_DARK_GRAY); NumberAxis axis = (NumberAxis) xyplot.getRangeAxis(); axis.setRangeType(RangeType.POSITIVE); axis.setLabelFont(UIConstants.H5_FONT); xyplot.getDomainAxis().setLabelFont(UIConstants.H5_FONT); XYBarRenderer renderer = (XYBarRenderer) xyplot.getRenderer(); renderer.setShadowVisible(false); renderer.setBaseItemLabelsVisible(true); if (labelGenerator != null) { renderer.setBaseItemLabelGenerator(labelGenerator); } renderer.setBaseItemLabelFont(UIConstants.H5_FONT); renderer.setBarPainter(new StandardXYBarPainter()); renderer.setSeriesPaint(0, UIConstants.INTEL_BLUE); return jfreechart; }
From source file:com.signalcollect.sna.gephiconnectors.SignalCollectGephiConnector.java
/** * Creates the Chart of the Degree Distribution according to the calculated * distribution/*from ww w. j a v a2 s .c om*/ * * @param degreeDistribution * @return a {@link JFreeChart} containing the distribution of degrees in * the graph * @throws IOException */ public JFreeChart createDegreeDistributionChart(Map<Integer, Integer> degreeDistribution) throws IOException { XYSeries dSeries = new XYSeries("number of occurences"); for (Iterator it = degreeDistribution.entrySet().iterator(); it.hasNext();) { Map.Entry d = (Map.Entry) it.next(); Number x = (Number) d.getKey(); Number y = (Number) d.getValue(); dSeries.add(x, y); } XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(dSeries); dataset.setAutoWidth(true); JFreeChart chart = ChartFactory.createHistogram("Degree Distribution", "Degree centrality value", "number of occurences", dataset, PlotOrientation.VERTICAL, true, true, true); XYPlot plot = chart.getXYPlot(); XYBarRenderer renderer0 = new XYBarRenderer(); Font font = new Font("Font", 0, 14); renderer0.setMargin(0.2); renderer0.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); renderer0.setBaseItemLabelsVisible(true); renderer0.setBaseItemLabelFont(font); plot.setDataset(0, dataset); plot.setRenderer(0, renderer0); plot.getRendererForDataset(plot.getDataset(0)).setSeriesPaint(0, Color.BLUE); return chart; }
From source file:com.signalcollect.sna.gephiconnectors.SignalCollectGephiConnector.java
/** * Creates the Chart of the Clustering Distribution according to the * calculated distribution//from www . j a v a 2s .c o m * * @param clusterDistribution * @return a {@link JFreeChart} containing the distribution of local cluster * coefficients in the graph * @throws IOException */ public JFreeChart createClusterDistributionChart(Map<Double, Integer> clusterDistribution) throws IOException { XYSeries dSeries = new XYSeries("number of occurences"); for (Iterator it = clusterDistribution.entrySet().iterator(); it.hasNext();) { Map.Entry d = (Map.Entry) it.next(); Number x = (Number) d.getKey(); Number y = (Number) d.getValue(); dSeries.add(x, y); } XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(dSeries); dataset.setAutoWidth(true); JFreeChart chart = ChartFactory.createHistogram("Local Cluster Coefficient Distribution", "Local Cluster Coefficient value", "number of occurences", dataset, PlotOrientation.VERTICAL, true, true, true); XYPlot plot = chart.getXYPlot(); XYBarRenderer renderer0 = new XYBarRenderer(); Font font = new Font("Font", 0, 14); renderer0.setMargin(0.2); renderer0.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); renderer0.setBaseItemLabelsVisible(true); renderer0.setBaseItemLabelFont(font); plot.setDataset(0, dataset); plot.setRenderer(0, renderer0); plot.getRendererForDataset(plot.getDataset(0)).setSeriesPaint(0, Color.BLUE); return chart; }
From source file:de.fub.maps.project.detector.model.statistics.HistogramPanel.java
/** * Creates new form histogramPanel//from w w w .ja v a 2 s .c o m */ public HistogramPanel() { initComponents(); histogramChart = ChartFactory.createHistogram(null, null, null, dataSet, PlotOrientation.VERTICAL, false, true, true); plot = histogramChart.getXYPlot(); chartPanel = new ChartPanel(histogramChart, true); add(chartPanel, BorderLayout.CENTER); XYBarRenderer barRenderer = new XYBarRenderer(.05); barRenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); barRenderer.setBarPainter(new StandardXYBarPainter()); barRenderer.setBarAlignmentFactor(.1); barRenderer.setBasePaint(Color.blue); // barRenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); barRenderer.setBaseItemLabelGenerator( new StandardXYItemLabelGenerator(StandardXYItemLabelGenerator.DEFAULT_ITEM_LABEL_FORMAT, new CustomNumberFormat(), new CustomNumberFormat())); barRenderer.setBaseItemLabelsVisible(true); plot.setRenderer(barRenderer); plot.setBackgroundPaint(Color.white); histogramChart.setBackgroundPaint(Color.white); plot.setRangeGridlinesVisible(true); chartPanel.setVerticalAxisTrace(false); chartPanel.setDisplayToolTips(true); chartPanel.setBackground(Color.white); }
From source file:no.met.jtimeseries.chart.ChartPlotter.java
/** * Show bar values at the top of the bar * //from w w w . j av a 2 s.co m * @param plotIndex * @param offSet */ private void showBarValuesOnTop(int plotIndex, double offSet) { XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer(plotIndex); renderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); renderer.setBaseItemLabelsVisible(true); renderer.setBasePositiveItemLabelPosition( new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.CENTER)); renderer.setItemLabelAnchorOffset(offSet); // renderer.setItemLabelFont(new Font("arial",Font.BOLD,9)); renderer.setBaseItemLabelFont(new Font("arial", Font.BOLD, 8)); renderer.setBaseItemLabelsVisible(true); }