List of usage examples for org.jfree.data.xy XYIntervalSeriesCollection getSeriesCount
@Override public int getSeriesCount()
From source file:org.jfree.data.xy.XYIntervalSeriesCollectionTest.java
/** * Some basic checks for the removeSeries() method. *//*from w w w.j a v a 2s . c om*/ @Test public void testRemoveSeries() { XYIntervalSeriesCollection c = new XYIntervalSeriesCollection(); XYIntervalSeries s1 = new XYIntervalSeries("s1"); c.addSeries(s1); c.removeSeries(0); assertEquals(0, c.getSeriesCount()); c.addSeries(s1); boolean pass = false; try { c.removeSeries(-1); } catch (IllegalArgumentException e) { pass = true; } assertTrue(pass); pass = false; try { c.removeSeries(1); } catch (IllegalArgumentException e) { pass = true; } assertTrue(pass); }
From source file:org.jfree.data.xy.junit.XYIntervalSeriesCollectionTest.java
/** * Some basic checks for the removeSeries() method. */// w w w .j av a 2s.c o m public void testRemoveSeries() { XYIntervalSeriesCollection c = new XYIntervalSeriesCollection(); XYIntervalSeries s1 = new XYIntervalSeries("s1"); c.addSeries(s1); c.removeSeries(0); assertEquals(0, c.getSeriesCount()); c.addSeries(s1); boolean pass = false; try { c.removeSeries(-1); } catch (IllegalArgumentException e) { pass = true; } assertTrue(pass); pass = false; try { c.removeSeries(1); } catch (IllegalArgumentException e) { pass = true; } assertTrue(pass); }
From source file:msi.gama.outputs.layers.charts.ChartJFreeChartOutputScatter.java
@Override protected void createNewSerie(final IScope scope, final String serieid) { final ChartDataSeries dataserie = chartdataset.getDataSeries(scope, serieid); final XYIntervalSeries serie = new XYIntervalSeries(dataserie.getSerieLegend(scope), false, true); final XYPlot plot = (XYPlot) this.chart.getPlot(); final XYIntervalSeriesCollection firstdataset = (XYIntervalSeriesCollection) plot.getDataset(); if (!IdPosition.containsKey(serieid)) { if (firstdataset.getSeriesCount() == 0) { firstdataset.addSeries(serie); plot.setDataset(0, firstdataset); } else {/*from w ww.j av a 2s.c o m*/ final XYIntervalSeriesCollection newdataset = new XYIntervalSeriesCollection(); newdataset.addSeries(serie); jfreedataset.add(newdataset); plot.setDataset(jfreedataset.size() - 1, newdataset); } plot.setRenderer(jfreedataset.size() - 1, (XYItemRenderer) getOrCreateRenderer(scope, serieid)); IdPosition.put(serieid, jfreedataset.size() - 1); // DEBUG.LOG("new serie"+serieid+" at // "+IdPosition.get(serieid)+" fdsize "+plot.getSeriesCount()+" jfds // "+jfreedataset.size()+" datasc "+plot.getDatasetCount()); // TODO Auto-generated method stub } }
From source file:it.cnr.istc.iloc.gui.StateVariableVisualizer.java
@Override public Collection<XYPlot> getPlots(Type type) { Collection<IItem> instances = type.getInstances(); Collection<XYPlot> plots = new ArrayList<>(instances.size()); Map<IItem, Collection<Atom>> sv_atoms = new IdentityHashMap<>(instances.size()); for (IItem i : type.getInstances()) { sv_atoms.put(i, new ArrayList<>()); }//from www . jav a2 s .co m for (Atom atom : ((StateVariable) type).getDefinedPredicates().stream() .flatMap(p -> p.getInstances().stream()).map(a -> (Atom) a) .filter(a -> a.state.evaluate().isSingleton() && a.state.evaluate().contains(AtomState.Active)) .collect(Collectors.toList())) { for (IItem i : ((IEnumItem) atom.get(SCOPE)).getEnumVar().evaluate().getAllowedValues()) { if (sv_atoms.containsKey(i)) { sv_atoms.get(i).add(atom); } } } for (IItem sv : instances) { Collection<Atom> atoms = sv_atoms.get(sv); // For each pulse the atoms starting at that pulse Map<Double, Collection<Atom>> starting_atoms = new HashMap<>(atoms.size()); // For each pulse the atoms ending at that pulse Map<Double, Collection<Atom>> ending_atoms = new HashMap<>(atoms.size()); // The pulses of the timeline Set<Double> c_pulses = new HashSet<>(atoms.size() * 2); for (Atom atom : atoms) { double start = sv.getCore().evaluate(((IArithItem) atom.get("start")).getArithVar()); double end = sv.getCore().evaluate(((IArithItem) atom.get("end")).getArithVar()); if (!starting_atoms.containsKey(start)) { starting_atoms.put(start, new ArrayList<>()); } starting_atoms.get(start).add(atom); if (!ending_atoms.containsKey(end)) { ending_atoms.put(end, new ArrayList<>()); } ending_atoms.get(end).add(atom); c_pulses.add(start); c_pulses.add(end); } // we sort current pulses.. Double[] c_pulses_array = c_pulses.toArray(new Double[c_pulses.size()]); Arrays.sort(c_pulses_array); XYIntervalSeriesCollection collection = new XYIntervalSeriesCollection(); ValueXYIntervalSeries undefined = new ValueXYIntervalSeries("Undefined"); ValueXYIntervalSeries sv_values = new ValueXYIntervalSeries("Values"); ValueXYIntervalSeries conflicts = new ValueXYIntervalSeries("Conflicts"); List<Atom> overlapping_atoms = new ArrayList<>(); for (int i = 0; i < c_pulses_array.length - 1; i++) { if (starting_atoms.containsKey(c_pulses_array[i])) { overlapping_atoms.addAll(starting_atoms.get(c_pulses_array[i])); } if (ending_atoms.containsKey(c_pulses_array[i])) { overlapping_atoms.removeAll(ending_atoms.get(c_pulses_array[i])); } switch (overlapping_atoms.size()) { case 0: undefined.add(c_pulses_array[i], c_pulses_array[i], c_pulses_array[i + 1], 0, 0, 1, new Atom[0]); break; case 1: sv_values.add(c_pulses_array[i], c_pulses_array[i], c_pulses_array[i + 1], 0, 0, 1, overlapping_atoms.toArray(new Atom[overlapping_atoms.size()])); break; default: conflicts.add(c_pulses_array[i], c_pulses_array[i], c_pulses_array[i + 1], 0, 0, 1, overlapping_atoms.toArray(new Atom[overlapping_atoms.size()])); break; } } collection.addSeries(undefined); collection.addSeries(sv_values); collection.addSeries(conflicts); XYBarRenderer renderer = new XYBarRenderer(); renderer.setSeriesPaint(0, Color.lightGray); renderer.setSeriesPaint(1, new Color(100, 250, 100)); renderer.setSeriesPaint(2, Color.pink); renderer.setBarPainter(new ReverseGradientXYBarPainter()); renderer.setDrawBarOutline(true); renderer.setShadowXOffset(2); renderer.setShadowYOffset(2); renderer.setUseYInterval(true); renderer.setBaseItemLabelsVisible(true); renderer.setBaseItemLabelPaint(Color.black); Font font = new Font("SansSerif", Font.PLAIN, 9); renderer.setBaseItemLabelFont(font); XYItemLabelGenerator generator = (XYDataset dataset, int series, int item) -> toString(((ValueXYIntervalDataItem) ((XYIntervalSeriesCollection) dataset) .getSeries(series).getDataItem(item)).atoms); ItemLabelPosition itLabPos = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER); renderer.setBasePositiveItemLabelPosition(itLabPos); for (int i = 0; i < collection.getSeriesCount(); i++) { renderer.setSeriesItemLabelGenerator(i, generator); renderer.setSeriesItemLabelsVisible(i, true); renderer.setSeriesItemLabelPaint(i, Color.black); renderer.setSeriesItemLabelFont(i, font); renderer.setSeriesPositiveItemLabelPosition(i, itLabPos); renderer.setSeriesToolTipGenerator(i, (XYDataset dataset, int series, int item) -> toString( ((ValueXYIntervalDataItem) ((XYIntervalSeriesCollection) dataset).getSeries(series) .getDataItem(item)).atoms)); } XYPlot plot = new XYPlot(collection, null, new NumberAxis(""), renderer); plot.getRangeAxis().setVisible(false); plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD); plots.add(plot); } return plots; }
From source file:com.jtstand.swing.StatsPanel.java
public JFreeChart getChartDistribution(boolean horizontal) { // System.out.println("Min: " + minValue()); // System.out.println("Max: " + maxValue()); XYIntervalSeriesCollection datasetDistribution = createIntervalXYDatasetDistribution(horizontal); XYSeriesCollection dataset2 = createXYDatasetGauss(horizontal); // create the chart... NumberAxis xAxis = new NumberAxis(getValueString()); xAxis.setAutoRangeIncludesZero(false); // NumberAxis yAxis = new NumberAxis("Distribution"); NumberAxis yAxis = new NumberAxis(); yAxis.setAutoRangeIncludesZero(true); //XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); renderer = new MyBarRenderer(); XYPlot plot = new XYPlot(datasetDistribution, xAxis, yAxis, renderer); plot.setOrientation(horizontal ? PlotOrientation.HORIZONTAL : PlotOrientation.VERTICAL); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, isGrouping()); chart.setBackgroundPaint((Paint) UIManager.get("Panel.background")); // plot.setBackgroundPaint(Color.white); plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT); plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); StandardXYItemLabelGenerator itemlabels = new StandardXYItemLabelGenerator(); renderer.setBaseItemLabelGenerator(itemlabels); renderer.setBaseItemLabelsVisible(true); plot.setDataset(1, dataset2);//from w w w .j a va2 s . c o m plot.mapDatasetToRangeAxis(1, 1); // ValueAxis domainAxis = plot.getDomainAxis(); //domainAxis.setCategoryLabelPositions(horizontal?CategoryLabelPositions.STANDARD:CategoryLabelPositions.UP_90); ValueAxis axis2 = new NumberAxis("Gaussian"); plot.setRangeAxis(1, axis2); axis2.setVisible(false); final XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(); //renderer2.setShapesVisible(false); //renderer2.setSeriesVisibleInLegend(false); renderer2.setBaseSeriesVisibleInLegend(false); //renderer2.setToolTipGenerator(new StandardCategoryToolTipGenerator()); plot.setRenderer(1, renderer2); renderer.setUseYInterval(true); renderer.setBaseSeriesVisibleInLegend(false); /* coloring */ Color c; if (isMultipleCategorization()) { // TreeMap<String, Color> cmap = new TreeMap<String, Color>(); int i = 0; for (Iterator<String> it = catstats.keySet().iterator(); it.hasNext(); i++) { String groupName = it.next(); c = ChartCategories.getColor(i); for (int j = 0; j < datasetDistribution.getSeriesCount(); j++) { XYIntervalSeries s = datasetDistribution.getSeries(j); if (s.getKey().equals(groupName)) { GradientPaint gp = new GradientPaint(0.0f, 0.0f, c, 0.0f, 0.0f, c.darker().darker()); renderer.setSeriesPaint(j, gp); } } for (int j = 0; j < dataset2.getSeriesCount(); j++) { XYSeries s = dataset2.getSeries(j); if (s.getKey().equals(groupName)) { renderer2.setSeriesPaint(j, c); renderer2.setSeriesShapesVisible(j, false); renderer2.setSeriesStroke(j, myStroke); } } } c = Color.black; } else { c = ChartCategories.getColor(0); GradientPaint gp = new GradientPaint(0.0f, 0.0f, c, 0.0f, 0.0f, c.darker().darker()); renderer.setSeriesPaint(0, gp); } renderer2.setSeriesPaint(0, c); renderer2.setSeriesShapesVisible(0, false); renderer2.setSeriesStroke(0, myStroke); placeLimitMarkers(plot, false); // renderer.setAutoPopulateSeriesOutlinePaint(true); // renderer.setBaseOutlinePaint(Color.black); // renderer.setSeriesOutlinePaint(0, Color.black, true); // renderer.setDrawBarOutline(true); renderer.setHighlightedItem(0, 0); yAxis.setAutoRange(false); yAxis.setAutoRange(true); xAxis.setRange(leftValue(0), rightValue(numberOfCategories - 1)); chart.setTextAntiAlias(false); return chart; }