List of usage examples for org.jfree.data.general DefaultKeyedValues2DDataset DefaultKeyedValues2DDataset
DefaultKeyedValues2DDataset
From source file:org.jfree.chart.demo.PopulationChartDemo1.java
private KeyedValues2DDataset createDataset() { DefaultKeyedValues2DDataset defaultkeyedvalues2ddataset = new DefaultKeyedValues2DDataset(); defaultkeyedvalues2ddataset.addValue(-6D, "Male", "70+"); defaultkeyedvalues2ddataset.addValue(-8D, "Male", "60-69"); defaultkeyedvalues2ddataset.addValue(-11D, "Male", "50-59"); defaultkeyedvalues2ddataset.addValue(-13D, "Male", "40-49"); defaultkeyedvalues2ddataset.addValue(-14D, "Male", "30-39"); defaultkeyedvalues2ddataset.addValue(-15D, "Male", "20-29"); defaultkeyedvalues2ddataset.addValue(-19D, "Male", "10-19"); defaultkeyedvalues2ddataset.addValue(-21D, "Male", "0-9"); defaultkeyedvalues2ddataset.addValue(10D, "Female", "70+"); defaultkeyedvalues2ddataset.addValue(12D, "Female", "60-69"); defaultkeyedvalues2ddataset.addValue(13D, "Female", "50-59"); defaultkeyedvalues2ddataset.addValue(14D, "Female", "40-49"); defaultkeyedvalues2ddataset.addValue(15D, "Female", "30-39"); defaultkeyedvalues2ddataset.addValue(17D, "Female", "20-29"); defaultkeyedvalues2ddataset.addValue(19D, "Female", "10-19"); defaultkeyedvalues2ddataset.addValue(20D, "Female", "0-9"); return defaultkeyedvalues2ddataset; }
From source file:ch.bfh.lca._15h.server.statisticServices.ChartHandler.java
/** * Generates a JFreeChart object, which represents an age-pyramide diagramm. * @param arrResults an array of GenericResultRow objects. The following assignement has to be done: * Value at Position 0 = Categorie (such as Age 25 to 30) * Value at Position 1 = Count of males/*from w w w. j a va 2s.c o m*/ * Value at Position 2 = Count of females * @return an JFreeChart Object */ public JFreeChart generatesPopulationChart(GenericResultRow[] arrResults) { DefaultKeyedValues2DDataset data = new DefaultKeyedValues2DDataset(); for (GenericResultRow resultRow : arrResults) { long maleCount = (long) resultRow.getValueAt(1); long femaleCount = (long) resultRow.getValueAt(2); String category = (String) resultRow.getValueAt(0); // Mnner data.addValue(-maleCount, "Mnner", category); // Frauem data.addValue(femaleCount, "Frauen", category); } // create the chart... JFreeChart chart = ChartFactory.createStackedBarChart("Arzt-Patientenkontakte (APK)", "Alter", // domain axis label "Arzt-Patientenkontakte (APK)", // range axis label data, // data PlotOrientation.HORIZONTAL, true, // include legend true, // tooltips false); return chart; }
From source file:org.jfree.data.general.DefaultKeyedValues2DDatasetTest.java
/** * Confirm that cloning works.//from ww w.ja v a2s . co m */ @Test public void testCloning() throws CloneNotSupportedException { DefaultKeyedValues2DDataset d1 = new DefaultKeyedValues2DDataset(); d1.setValue(new Integer(1), "V1", "C1"); d1.setValue(null, "V2", "C1"); d1.setValue(new Integer(3), "V3", "C2"); DefaultKeyedValues2DDataset d2 = (DefaultKeyedValues2DDataset) d1.clone(); assertTrue(d1 != d2); assertTrue(d1.getClass() == d2.getClass()); assertTrue(d1.equals(d2)); }
From source file:dk.sdu.mmmi.featureous.views.codecharacterization.TanglingViewChart.java
public TanglingViewChart(boolean pkg, boolean sortByValue) { this.sortByValue = sortByValue; this.pkg = pkg; data = new DefaultKeyedValues2DDataset(); String title = "Computational unit characterization"; jchart = ChartFactory.createStackedBarChart(title, (pkg) ? "Package" : "Class", "Tangling", data, PlotOrientation.VERTICAL, true, false, false); CategoryPlot plot = (CategoryPlot) jchart.getPlot(); // chart.getLegend().setPosition(RectangleEdge.RIGHT); // chart.getLegend().setVerticalAlignment(VerticalAlignment.TOP); // chart.getLegend().setHorizontalAlignment(HorizontalAlignment.LEFT); LegendItemCollection lic = new LegendItemCollection(); // lic.add(new LegendItem("Infrastructural unit", "", "", "", new Rectangle(10, 10), Color.GREEN)); // lic.add(new LegendItem("Group-feature unit", "", "", "", new Rectangle(10, 10), Color.BLUE)); // lic.add(new LegendItem("Single-feature unit", "", "", "", new Rectangle(10, 10), Color.RED)); plot.setFixedLegendItems(lic);/*from w w w. ja v a2 s . c om*/ // chart.removeLegend(); plot.setDomainAxis(new SparselyLabeledCategoryAxis(20)); CategoryAxis xAxis = (CategoryAxis) plot.getDomainAxis(); xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); xAxis.setLabel((pkg) ? "Package" : "Class"); // xAxis.setTickLabelInsets(new RectangleInsets(0, 0, 5, 5)); // xAxis.setMaximumCategoryLabelLines(1); xAxis.setLowerMargin(0); xAxis.setCategoryMargin(0); xAxis.setUpperMargin(0); // xAxis.setMaximumCategoryLabelWidthRatio(20f); jchart.setBackgroundPaint(Color.white); StackedBarRenderer renderer = new StackedBarRenderer() { @Override public void drawItem(Graphics2D g2, CategoryItemRendererState state, Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis, ValueAxis rangeAxis, CategoryDataset dataset, int row, int column, int pass) { super.drawItem(g2, state, dataArea, plot, domainAxis, rangeAxis, dataset, row, column, pass); double start = plot.getDomainAxis().getCategoryStart(column, getColumnCount(), dataArea, plot.getDomainAxisEdge()); double end = plot.getDomainAxis().getCategoryEnd(column, getColumnCount(), dataArea, plot.getDomainAxisEdge()); String compUnit = data.getRowKey(row).toString(); // Calculate y coeffs double posBase = getBase(); // for(int i = 0; i<row; i++){ // Number val = dataset.getValue(i, column); // if(val!=null){ // posBase = posBase + val.doubleValue(); // } // } Number value = dataset.getValue(row, column); if (value == null) { return; } double val = value.doubleValue(); double translatedBase = plot.getRangeAxis().valueToJava2D(posBase, dataArea, plot.getRangeAxisEdge()); double translatedValue = plot.getRangeAxis().valueToJava2D(posBase + val, dataArea, plot.getRangeAxisEdge()); if (Controller.getInstance().getTraceSet().getSelectionManager().getSelectedClasses() .contains(compUnit) || Controller.getInstance().getTraceSet().getSelectionManager().getSelectedPkgs() .contains(compUnit)) { g2.setPaint(UIUtils.SELECTION_COLOR); g2.setStroke(new BasicStroke(3f)); Line2D l2d = new Line2D.Double(start, translatedBase, start, translatedValue); g2.draw(l2d); l2d = new Line2D.Double(end, translatedBase, end, translatedValue); g2.draw(l2d); l2d = new Line2D.Double(start, translatedBase, end, translatedBase); g2.draw(l2d); l2d = new Line2D.Double(start, translatedValue, end, translatedValue); g2.draw(l2d); } } }; renderer.setToolTipGenerator(new CategoryToolTipGenerator() { public String generateToolTip(CategoryDataset cd, int i, int i1) { String key = data.getRowKey(i).toString(); // key = key.substring(0, key.length()-1); return "<html>" + i + " - " + key + "<br>" + Double.toString(cd.getValue(i, i1).doubleValue()) + "</hmtl>"; } }); plot.setRenderer(renderer); panel = new ChartPanel(jchart); panel.getPopupMenu().setEnabled(false);//add(SVGExporter.createExportAction(chart, panel)); createView(); Controller.getInstance().getTraceSet().getSelectionManager().addSelectionListener(this); }
From source file:org.jfree.data.general.DefaultKeyedValues2DDatasetTest.java
/** * Serialize an instance, restore it, and check for equality. *///ww w . j a v a 2s . co m public void testSerialization() { DefaultKeyedValues2DDataset d1 = new DefaultKeyedValues2DDataset(); d1.addValue(new Double(234.2), "Row1", "Col1"); d1.addValue(null, "Row1", "Col2"); d1.addValue(new Double(345.9), "Row2", "Col1"); d1.addValue(new Double(452.7), "Row2", "Col2"); DefaultKeyedValues2DDataset d2 = (DefaultKeyedValues2DDataset) TestUtilities.serialised(d1); assertEquals(d1, d2); }
From source file:org.jfree.chart.demo.PopulationChartDemo.java
/** * Creates a dataset.// w ww .j ava 2 s . c o m * * @return A dataset. */ private KeyedValues2DDataset createDataset() { final DefaultKeyedValues2DDataset data = new DefaultKeyedValues2DDataset(); data.addValue(-6.0, "Male", "70+"); data.addValue(-8.0, "Male", "60-69"); data.addValue(-11.0, "Male", "50-59"); data.addValue(-13.0, "Male", "40-49"); data.addValue(-14.0, "Male", "30-39"); data.addValue(-15.0, "Male", "20-29"); data.addValue(-19.0, "Male", "10-19"); data.addValue(-21.0, "Male", "0-9"); data.addValue(10.0, "Female", "70+"); data.addValue(12.0, "Female", "60-69"); data.addValue(13.0, "Female", "50-59"); data.addValue(14.0, "Female", "40-49"); data.addValue(15.0, "Female", "30-39"); data.addValue(17.0, "Female", "20-29"); data.addValue(19.0, "Female", "10-19"); data.addValue(20.0, "Female", "0-9"); return data; }
From source file:charts.Chart.java
public static void PlotParallelCoordinates(String title, String x_axis_label, String y_axis_label, float[][] Md, int classes, int[] features, Vector featurestitles, Vector datatitles) { JFrame chartwindow = new JFrame(title); JFreeChart jfreechart = ChartFactory.createLineChart(title, x_axis_label, y_axis_label, null, PlotOrientation.VERTICAL, true, true, false); CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); categoryplot.setBackgroundPaint(Color.white); categoryplot.setRangeGridlinePaint(Color.black); NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); int lines = Md.length; int columns = Md[0].length; LineAndShapeRenderer[] lineandshaperenderer = new LineAndShapeRenderer[classes]; for (int i = 0; i < lineandshaperenderer.length; i++) { lineandshaperenderer[i] = new LineAndShapeRenderer(); lineandshaperenderer[i].setShapesVisible(true); lineandshaperenderer[i].setDrawOutlines(true); lineandshaperenderer[i].setUseFillPaint(true); lineandshaperenderer[i].setFillPaint(Color.white); lineandshaperenderer[i].setBaseStroke(new BasicStroke(2.0f)); }//from w w w . j av a2 s . co m int count = 0; for (int i = 0; i < lines; i++) { int classe = ((int) Md[i][columns - 1]); DefaultKeyedValues2DDataset dataset = new DefaultKeyedValues2DDataset(); int j = 0; double value = 0; while (j < features.length) { /*value recebe o valor da linha i e da coluna especificada pelo usuario, por meio do parametro de chegada features[]*/ value = Md[i][features[j]]; String strclasse = String.valueOf(classe); //especifico Marie-Anne /* if (classe == 0) { strclasse = "thi1"; lineandshaperenderer[classe].setSeriesPaint(0, Color.RED); Shape s0 = new Rectangle2D.Float(-3f, -3f, 6f, 6f); lineandshaperenderer[classe].setSeriesShape(0, s0); } else if (classe == 1) { strclasse = "controle"; lineandshaperenderer[classe].setSeriesPaint(0, Color.PINK); Shape s1 = new Ellipse2D.Float(-3f, -3f, 6f, 6f); lineandshaperenderer[classe].setSeriesShape(0, s1); } else if (classe == 2) { strclasse = "fotossntese"; lineandshaperenderer[classe].setSeriesPaint(0, Color.GREEN); int[] x = {-3, 0, 3}; int[] y = {-3, 3, -3}; int n = 3; Shape s2 = new Polygon(x, y, n); lineandshaperenderer[classe].setSeriesShape(0, s2); } else if (classe == 3) { strclasse = "respirao"; int[] x = {-3, 0, 3}; int[] y = {3, -3, 3}; int n = 3; Shape s3 = new Polygon(x, y, n); lineandshaperenderer[classe].setSeriesShape(0, s3); lineandshaperenderer[classe].setSeriesPaint(0, Color.BLUE); } else if (classe == 4) { strclasse = "sntese de tiamina"; lineandshaperenderer[classe].setSeriesPaint(0, Color.BLACK); Shape s4 = new Rectangle2D.Float(-1f, -3f, 1f, 6f); lineandshaperenderer[classe].setSeriesShape(0, s4); } else if (classe == 5) { strclasse = "gliclise"; int[] x = {-3, 0, 3, 0}; int[] y = {0, -3, 0, 3}; int n = 4; Shape s5 = new Polygon(x, y, n); lineandshaperenderer[classe].setSeriesPaint(0, Color.ORANGE); lineandshaperenderer[classe].setSeriesShape(0, s5); } else if (classe == 6) { strclasse = "AT4G34200"; int[] x = {-3, 0, 3, 0}; int[] y = {0, -3, 0, 3}; int n = 4; Shape s5 = new Polygon(x, y, n); lineandshaperenderer[classe].setSeriesPaint(0, Color.MAGENTA); lineandshaperenderer[classe].setSeriesShape(0, s5); } else if (classe == 7) { strclasse = "AT2G36530"; int[] x = {-3, 0, 3, 0}; int[] y = {0, -3, 0, 3}; int n = 4; Shape s5 = new Polygon(x, y, n); lineandshaperenderer[classe].setSeriesPaint(0, Color.CYAN); lineandshaperenderer[classe].setSeriesShape(0, s5); } */ if (featurestitles != null) { if (datatitles != null) { dataset.addValue(value, strclasse, (String) featurestitles.get(features[j] + 1)); //datasets[i].addValue(Mo[lineindex[i]][c], label, (String) featurestitles.get(c + 1)); } else { dataset.addValue(value, strclasse, (String) featurestitles.get(features[j])); //datasets[i].addValue(Mo[lineindex[i]][c], label, (String) featurestitles.get(c)); } } else { dataset.addValue(value, strclasse, String.valueOf(features[j])); //datasets[i].addValue(Mo[lineindex[i]][c], label, String.valueOf(c)); } //dataset.addValue(value, String.valueOf(classe), String.valueOf(features[j])); j++; } categoryplot.setDataset(count, dataset); categoryplot.setRenderer(count, lineandshaperenderer[classe]); count++; } LegendItemCollection legends = categoryplot.getLegendItems(); LegendItemCollection newlegends = new LegendItemCollection(); for (int i = 0; i < classes; i++) { int l = 0; //especifico Marie-Anne String label1 = null; if (i == 0) { label1 = "thi1"; } else if (i == 1) { label1 = "controle"; } else if (i == 2) { label1 = "fotossntese"; } else if (i == 3) { label1 = "respirao"; } else if (i == 4) { label1 = "sntese de tiamina"; } else if (i == 5) { label1 = "gliclise"; } else if (i == 6) { label1 = "AT4G34200"; } else if (i == 7) { label1 = "AT2G36530"; } //String label1 = String.valueOf(i); String label2 = null; boolean found = false; do { label2 = legends.get(l).getLabel(); if (label1.equalsIgnoreCase(label2)) { found = true; } else { l++; } } while (!found && (l < lines)); if (found) { //newlegends.add(legends.get(l)); LegendItem li = new LegendItem(legends.get(l).getLabel(), legends.get(l).getDescription(), legends.get(l).getToolTipText(), legends.get(l).getURLText(), legends.get(l).isShapeVisible(), legends.get(l).getShape(), legends.get(l).isShapeFilled(), legends.get(l).getFillPaint(), legends.get(l).isShapeOutlineVisible(), legends.get(l).getOutlinePaint(), legends.get(l).getOutlineStroke(), legends.get(l).isLineVisible(), legends.get(l).getLine(), legends.get(l).getLineStroke(), legends.get(l).getLinePaint()); newlegends.add(li); } } categoryplot.setFixedLegendItems(newlegends); JPanel jpanel = new ChartPanel(jfreechart); jpanel.setPreferredSize(new Dimension(defaultwidth, defaultheight)); chartwindow.setContentPane(jpanel); chartwindow.pack(); RefineryUtilities.centerFrameOnScreen(chartwindow); chartwindow.setVisible(true); }
From source file:charts.Chart.java
public static void PlotMeanParallelCoordinates(String title, String x_axis_label, String y_axis_label, float[][] Md, int classes, int[] features, Vector featurestitles, Vector datatitles) { JFrame chartwindow = new JFrame(title); JFreeChart jfreechart = ChartFactory.createLineChart(title, x_axis_label, y_axis_label, null, PlotOrientation.VERTICAL, true, true, false); CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); categoryplot.setBackgroundPaint(Color.white); categoryplot.setRangeGridlinePaint(Color.black); NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); int lines = Md.length; int columns = Md[0].length; LineAndShapeRenderer[] lineandshaperenderer = new LineAndShapeRenderer[classes]; //lineandshaperenderer[0] = new LineAndShapeRenderer();//(LineAndShapeRenderer) categoryplot.getRenderer(); //lineandshaperenderer[0].setShapesVisible(true); //lineandshaperenderer[0].setDrawOutlines(true); //lineandshaperenderer[0].setUseFillPaint(true); //lineandshaperenderer[0].setFillPaint(Color.white); for (int i = 0; i < lineandshaperenderer.length; i++) { lineandshaperenderer[i] = new LineAndShapeRenderer(); lineandshaperenderer[i].setShapesVisible(true); lineandshaperenderer[i].setDrawOutlines(true); lineandshaperenderer[i].setUseFillPaint(true); lineandshaperenderer[i].setFillPaint(Color.white); lineandshaperenderer[i].setBaseStroke(new BasicStroke(2.0f)); }//from w w w.j a va 2s . co m double[][][] valuesperclasse = new double[columns][classes][2]; /* a primeira coluna acumula a soma dos valores, e a segunda coluna conta o numero de vezes que recebeu um valor, para gerar a media aritmetica dos valores de cada atributo para cada uma das classes.*/ for (int i = 0; i < lines; i++) { int classe = ((int) Md[i][columns - 1]); int j = 0; while (j < features.length) { valuesperclasse[features[j]][classe][0] += Md[i][features[j]]; valuesperclasse[features[j]][classe][1]++; j++; } } for (int i = 0; i < classes; i++) { DefaultKeyedValues2DDataset dataset = new DefaultKeyedValues2DDataset(); double meanvaluej = 0; for (int j = 0; j < features.length; j++) { meanvaluej = valuesperclasse[features[j]][i][0] / valuesperclasse[features[j]][i][1]; String strclasse = String.valueOf(i); //especifico Marie-Anne /* if (i == 0) { strclasse = "thi1"; lineandshaperenderer[i].setSeriesPaint(0, Color.RED); Shape s0 = new Rectangle2D.Float(-3f, -3f, 6f, 6f); lineandshaperenderer[i].setSeriesShape(0, s0); } else if (i == 1) { strclasse = "controle"; lineandshaperenderer[i].setSeriesPaint(0, Color.PINK); Shape s1 = new Ellipse2D.Float(-3f, -3f, 6f, 6f); lineandshaperenderer[i].setSeriesShape(0, s1); } else if (i == 2) { strclasse = "fotossntese"; lineandshaperenderer[i].setSeriesPaint(0, Color.GREEN); int[] x = {-3, 0, 3}; int[] y = {-3, 3, -3}; int n = 3; Shape s2 = new Polygon(x, y, n); lineandshaperenderer[i].setSeriesShape(0, s2); } else if (i == 3) { strclasse = "respirao"; int[] x = {-3, 0, 3}; int[] y = {3, -3, 3}; int n = 3; Shape s3 = new Polygon(x, y, n); lineandshaperenderer[i].setSeriesShape(0, s3); lineandshaperenderer[i].setSeriesPaint(0, Color.BLUE); } else if (i == 4) { strclasse = "sntese de tiamina"; lineandshaperenderer[i].setSeriesPaint(0, Color.BLACK); Shape s4 = new Rectangle2D.Float(-1f, -3f, 1f, 6f); lineandshaperenderer[i].setSeriesShape(0, s4); } else if (i == 5) { strclasse = "gliclise"; int[] x = {-3, 0, 3, 0}; int[] y = {0, -3, 0, 3}; int n = 4; Shape s5 = new Polygon(x, y, n); lineandshaperenderer[i].setSeriesPaint(0, Color.ORANGE); lineandshaperenderer[i].setSeriesShape(0, s5); } else if (i == 6) { strclasse = "AT4G34200"; int[] x = {-3, 0, 3, 0}; int[] y = {0, -3, 0, 3}; int n = 4; Shape s5 = new Polygon(x, y, n); lineandshaperenderer[i].setSeriesPaint(0, Color.MAGENTA); lineandshaperenderer[i].setSeriesShape(0, s5); } else if (i == 7) { strclasse = "AT2G36530"; int[] x = {-3, 0, 3, 0}; int[] y = {0, -3, 0, 3}; int n = 4; Shape s5 = new Polygon(x, y, n); lineandshaperenderer[i].setSeriesPaint(0, Color.CYAN); lineandshaperenderer[i].setSeriesShape(0, s5); } */ if (featurestitles != null) { if (datatitles != null) { dataset.addValue(meanvaluej, strclasse, (String) featurestitles.get(features[j] + 1)); //datasets[i].addValue(Mo[lineindex[i]][c], label, (String) featurestitles.get(c + 1)); } else { dataset.addValue(meanvaluej, strclasse, (String) featurestitles.get(features[j])); //datasets[i].addValue(Mo[lineindex[i]][c], label, (String) featurestitles.get(c)); } } else { dataset.addValue(meanvaluej, strclasse, String.valueOf(features[j])); //dataset.addValue(meanvaluej, String.valueOf(i), String.valueOf(features[j])); } //dataset.addValue(meanvaluej, String.valueOf(i), String.valueOf(features[j])); } categoryplot.setDataset(i, dataset); categoryplot.setRenderer(i, lineandshaperenderer[i]); } JPanel jpanel = new ChartPanel(jfreechart); jpanel.setPreferredSize(new Dimension(defaultwidth, defaultheight)); chartwindow.setContentPane(jpanel); chartwindow.pack(); RefineryUtilities.centerFrameOnScreen(chartwindow); chartwindow.setVisible(true); }
From source file:canreg.client.gui.dataentry.PDSEditorInternalFrame.java
private DefaultKeyedValues2DDataset getJChartDataset() { DefaultKeyedValues2DDataset dataset = new DefaultKeyedValues2DDataset(); buildPDSfromTable(); // update the PDS PopulationDatasetsEntry[] ageGroups = pds.getAgeGroups(); Arrays.sort(ageGroups, new Comparator<PopulationDatasetsEntry>() { @Override/*from w ww . j a v a 2s. co m*/ public int compare(PopulationDatasetsEntry o1, PopulationDatasetsEntry o2) { return o2.getAgeGroup() - o1.getAgeGroup(); } }); for (PopulationDatasetsEntry entry : ageGroups) { String label = java.util.ResourceBundle .getBundle("canreg/client/gui/dataentry/resources/PDSEditorInternalFrame").getString("FEMALE"); int count = entry.getCount(); entry.getAgeGroup(); if (entry.getSex() == 1) { count = -count; label = java.util.ResourceBundle .getBundle("canreg/client/gui/dataentry/resources/PDSEditorInternalFrame") .getString("MALE"); } dataset.addValue(count, label, ageGroupLabelsTable.getValueAt(entry.getAgeGroup(), 0).toString()); } return dataset; }