List of usage examples for org.jfree.data.statistics HistogramDataset HistogramDataset
public HistogramDataset()
From source file:gda.gui.dv.panels.vispanels.ColourSelector.java
/** * The function that performs the histogram Drawing * /*from ww w . j av a 2s. c o m*/ * @param raw * the raw data * @return the new data in the appropriate form */ @Override public ImageData cast(DoubleDataset raw) { dataLink = raw; if (max == null) { max = raw.max().doubleValue(); } if (min == null) { min = raw.min().doubleValue(); } ImageData result = colourCast(raw, max, min); // if old stuff exists then remove it. if (chart != null) { chart.removeAll(); } // now plot the histogram HistogramDataset histData = new HistogramDataset(); histData.addSeries("h1", raw.getData(), 100, min, max); histogram = ChartFactory.createHistogram("Histogram", "Value", "Counts", histData, PlotOrientation.VERTICAL, false, false, false); if (unconfigured == false) { this.remove(chart); } unconfigured = false; chart = new DrawChart(histogram); chart.setMouseZoomable(false); chart.setPreferredSize(new Dimension(300, 300)); chart.setMinimumSize(new Dimension(200, 200)); c.gridx = 0; c.gridy = 4; c.gridwidth = 2; this.add(chart, c); chart.addMouseListener(new MouseListener() { Double tmin = min; Double tmax = max; @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { SimpleDataCoordinate coordinates = convertMouseEvent(e); if (chart.getScreenDataArea().contains(e.getX(), e.getY())) { tmin = coordinates.getX(); } else { if (chart.getScreenDataArea().outcode(e.getX(), e.getY()) != Rectangle2D.OUT_RIGHT) { // System.out.println("out of bounds"); // System.out.printf("Mouse: %d\n", e.getX()); } else { tmin = max; } } } @Override public void mouseReleased(MouseEvent e) { boolean update = false; SimpleDataCoordinate coordinates = convertMouseEvent(e); if (chart.getScreenDataArea().contains(e.getX(), e.getY())) { tmax = coordinates.getX(); update = true; } else { if (chart.getScreenDataArea().outcode(e.getX(), e.getY()) != Rectangle2D.OUT_LEFT) { // System.out.println("out of bounds"); // System.out.printf("Mouse: %d\n", e.getX()); } else { tmax = min; update = true; } } if (update && tmin != tmax) { if (tmin > tmax) { // check and correct limits Double t = tmin; tmin = tmax; tmax = t; } min = tmin; max = tmax; owner.getDataSetImage().applyColorCast(); owner.getDataSetPlot3D().applyColorCast(); owner.getDataSetImage().repaint(); } } public SimpleDataCoordinate convertMouseEvent(MouseEvent me) { return new SimpleDataCoordinate( histogram.getXYPlot().getDomainAxis().java2DToValue(me.getX(), chart.getScreenDataArea(), histogram.getXYPlot().getDomainAxisEdge()), histogram.getXYPlot().getRangeAxis().java2DToValue(me.getY(), chart.getScreenDataArea(), histogram.getXYPlot().getRangeAxisEdge())); } }); lblchart.invalidate(); lblchart.validate(); this.invalidate(); this.validate(); return result; }
From source file:com.rapidminer.gui.viewer.metadata.model.NumericalAttributeStatisticsModel.java
/** * Creates a {@link HistogramDataset} for this {@link Attribute}. * * @param exampleSet/*ww w . jav a 2 s . c o m*/ * @return */ private HistogramDataset createHistogramDataset(ExampleSet exampleSet) { HistogramDataset dataset = new HistogramDataset(); double[] array = new double[exampleSet.size()]; int count = 0; for (Example example : exampleSet) { double value = example.getDataRow().get(getAttribute()); // don't use missing values because otherwise JFreeChart tries to plot them too which // can lead to false histograms if (!Double.isNaN(value)) { array[count++] = value; } } // add points to data set (if any) if (count > 0) { // truncate array if necessary if (count < array.length) { array = Arrays.copyOf(array, count); } dataset.addSeries(getAttribute().getName(), array, Math.min(array.length, MAX_BINS_HISTOGRAM)); } return dataset; }
From source file:Trabalho.HistogramaHSB.java
public ChartPanel criaHistograma() throws IOException { //pega a imagem BufferedImage img = pegaImagem(); //w pega a largura da imagem - h pega a altura da imagem int w = img.getWidth(); int h = img.getHeight(); //d calcula o tamanho da imagem int d = (w * h); //red, green e blue iro receber os tons de cor antigo da imagem - u vai receber o RGB da cor int red, green, blue, u; //retorna rgb no mtodo float[] hsb;/*from ww w . ja va2 s . c o m*/ int[] vetH = new int[256]; int[] vetS = new int[256]; int[] vetB = new int[256]; float hue, sat, bri; //cAux e oldColor pegam os tons originais da imagem - newColor pega os tons aps o clculo Color oldColor; Color newColor; //for responsvel por substituir os tons antigos pelos novos; percorrem a imagem por largura e altura for (int i = 0; i < w; i++) { for (int j = 0; j < h; j++) { u = img.getRGB(i, j); //u vai receber o RGB da posio i, j oldColor = new Color(u); //oldColor instanciado e recebe o valor de u //cada cor recebe o valor do tom original red = oldColor.getRed(); green = oldColor.getGreen(); blue = oldColor.getBlue(); hsb = Color.RGBtoHSB(red, green, blue, null); hue = hsb[0]; sat = hsb[1]; bri = hsb[2]; // System.out.println("RGB [" + red + "," + green + "," + blue + "] converted to HSB [" + hue + "," + sat + "," + bri + "]"); // hue = hue * 360; // int convH = Integer.valueOf(new Float(hue).intValue()); // vetH[convH]++; // // sat = sat * 100; // int convS = Integer.valueOf(new Float(sat).intValue()); // vetS[convS]++; // // bri = bri * 100; // int convB = Integer.valueOf(new Float(bri).intValue()); // vetB[convB]++; newColor = new Color(hue, sat, bri); //seta o RGB da imagem nas posies i, j pegando os valores da newColor img.setRGB(i, j, newColor.getRGB()); } } File ouptut = new File("D:\\ProjetosNetBeans\\PDI\\src\\imagens\\5.jpeg"); ImageIO.write(img, "png", ouptut); dataset = new HistogramDataset(); //pega o RGB r = raster.getSamples(0, 0, w, h, 0, r); dataset.addSeries("Red", r, 360); r = raster.getSamples(0, 0, w, h, 1, r); dataset.addSeries("Green", r, 101); r = raster.getSamples(0, 0, w, h, 2, r); dataset.addSeries("Blue", r, 101); JFreeChart chart = ChartFactory.createHistogram("Histograma", "Pixels", "Y", dataset, PlotOrientation.VERTICAL, true, true, false); //Plota as cores XYPlot plot = (XYPlot) chart.getPlot(); renderer = (XYBarRenderer) plot.getRenderer(); renderer.setBarPainter(new StandardXYBarPainter()); //vermelho, verde, azul Paint[] paintArray = { new Color(0x80ff0000, true), new Color(0x8000ff00, true), new Color(0x800000ff, true) }; //desenhando o grfico plot.setDrawingSupplier( new DefaultDrawingSupplier(paintArray, DefaultDrawingSupplier.DEFAULT_FILL_PAINT_SEQUENCE, DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE, DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE, DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE, DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE)); ChartPanel panel = new ChartPanel(chart); panel.setMouseWheelEnabled(true); return panel; }
From source file:net.sf.maltcms.chromaui.project.spi.runnables.CondensePeakAnnotationsRunnable.java
@Override public void run() { try {/* w w w . j a v a 2 s . c o m*/ progressHandle.start(3); progressHandle.progress("Retrieving Tool Descriptors", 1); Collection<? extends IToolDescriptor> selectedTools = Dialogs.showAndSelectDescriptors( project.getToolsForPeakContainers(), Lookups.singleton(project), true, IToolDescriptor.class, "Condense Peaks", "Check Peak Tool Results to Condense"); if (!selectedTools.isEmpty()) { progressHandle.progress("Retrieving Peak Containers for " + selectedTools.size() + " Tools", 2); List<Peak1DContainer> peakContainers = new ArrayList<>(); for (IChromatogramDescriptor chrom : project.getChromatograms()) { for (Peak1DContainer container : project.getPeaks(chrom)) { if (selectedTools.contains(container.getTool())) { peakContainers.add(container); } } } File basedir = project.getImportLocation(this); for (Peak1DContainer container : peakContainers) { if (isCancel()) { return; } SummaryStatistics stats = new SummaryStatistics(); HistogramDataset hd = new HistogramDataset(); ArrayDouble.D2 pwd = new ArrayDouble.D2(container.getMembers().size(), container.getMembers().size()); int i = 0, j; ArrayList<IPeakAnnotationDescriptor> al = new ArrayList<>(container.getMembers()); HashMap<PeakFeatureVector, Clique<PeakFeatureVector>> cliques = new LinkedHashMap<>(); for (IPeakAnnotationDescriptor ipad1 : al) { Clique<PeakFeatureVector> c = new Clique<>(new PeakFeatureVectorComparator(), new PeakCliqueRTDiffMemberCriterion(), new PeakCliqueUpdater()); PeakFeatureVector pfv = new PeakFeatureVector(ipad1); c.add(pfv); cliques.put(pfv, c); } boolean done = false; while (!done) { for (Clique<PeakFeatureVector> pfv1 : cliques.values()) { for (Clique<PeakFeatureVector> pfv2 : cliques.values()) { Clique<PeakFeatureVector> jointClique = new Clique<>( new PeakFeatureVectorComparator(), new PeakCliqueRTDiffMemberCriterion(), new PeakCliqueUpdater()); Set<PeakFeatureVector> vectors = new LinkedHashSet<>(); } } } for (Clique<PeakFeatureVector> pfv1 : cliques.values()) { for (Clique<PeakFeatureVector> pfv2 : cliques.values()) { Clique<PeakFeatureVector> jointClique = new Clique<>(new PeakFeatureVectorComparator(), new PeakCliqueRTDiffMemberCriterion(), new PeakCliqueUpdater()); Set<PeakFeatureVector> vectors = new LinkedHashSet<>(); for (PeakFeatureVector p1 : pfv1.getFeatureVectorList()) { vectors.add(p1); for (PeakFeatureVector p2 : pfv2.getFeatureVectorList()) { vectors.add(p2); if (pfv1.add(p2)) { jointClique.add(p2); } else { vectors.remove(p2); } if (pfv2.add(p1)) { jointClique.add(p1); } else { vectors.remove(p1); } } } //jointClique.add } } System.out.println(stats); double snr = stats.getMean() / stats.getStandardDeviation(); Logger.getLogger(getClass().getName()).log(Level.INFO, "SNR: {0}", snr); // for (int u = 0; u < pwd.getShape()[0]; u++) { // for (int v = 0; v < pwd.getShape()[1]; v++) { // } // } saveHistogramChart(hd, new File(basedir, container.getChromatogram().getDisplayName() + "-" + container.getDisplayName() + "-similarity-histogram.png")); BufferedImage bi = ImageTools.makeImage2D(pwd, 256); ImageIO.write(bi, "PNG", new File(basedir, container.getChromatogram().getDisplayName() + "-" + container.getDisplayName() + ".png")); } progressHandle.progress("Calculating pairwise peak RTs", 3); project.refresh(); } else { Logger.getLogger(CondensePeakAnnotationsRunnable.class.getName()).log(Level.INFO, "IToolDescriptor selection was empty!"); } } catch (IllegalArgumentException | IOException e) { Exceptions.printStackTrace(e); } finally { progressHandle.finish(); } }
From source file:org.jfree.data.statistics.HistogramDatasetTest.java
/** * Serialize an instance, restore it, and check for equality. *//*from www .j a v a 2s . com*/ @Test public void testSerialization() { double[] values = { 1.0, 2.0, 3.0, 4.0, 6.0, 12.0, 5.0, 6.3, 4.5 }; HistogramDataset d1 = new HistogramDataset(); d1.addSeries("Series 1", values, 5); HistogramDataset d2 = (HistogramDataset) TestUtilities.serialised(d1); assertEquals(d1, d2); // simple check for independence d1.addSeries("Series 2", new double[] { 1.0, 2.0, 3.0 }, 2); assertFalse(d1.equals(d2)); d2.addSeries("Series 2", new double[] { 1.0, 2.0, 3.0 }, 2); assertTrue(d1.equals(d2)); }
From source file:com.intel.stl.ui.configuration.view.LFTHistogramPanel.java
@Override public void initComponents() { dataset = new HistogramDataset(); JFreeChart chart = ComponentFactory.createHistogramChart(K0427_PORT_NUMBER.getValue(), K0390_NUM_LIDS.getValue(), dataset); XYPlot plot = (XYPlot) chart.getPlot(); plot.setDomainPannable(true);/*from w w w.j a v a2 s .c om*/ plot.setRangePannable(true); final String portLabel = "<html>" + K0427_PORT_NUMBER.getValue() + ": "; final String lidCountLabel = "<br>" + K0390_NUM_LIDS.getValue() + ": "; XYItemRenderer renderer = plot.getRenderer(); renderer.setSeriesToolTipGenerator(0, new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int arg1, int arg2) { int portNum = (int) dataset.getXValue(arg1, arg2); int lidCount = (int) dataset.getYValue(arg1, arg2); return portLabel + portNum + lidCountLabel + lidCount + "</html>"; } }); NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); NumberAxis xAxis = (NumberAxis) plot.getDomainAxis(); xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); chartPanel = new ChartPanel(chart); chartPanel.setMouseWheelEnabled(true); chartPanel.setPreferredSize(PREFERRED_CHART_SIZE); propsPanel.add(chartPanel); }
From source file:org.utgenome.core.cui.DrawHistogram.java
public void execute() throws Exception { InputStream in = null;//from w ww.j a v a 2 s .co m if ("-".equals(input)) { _logger.info("reading from STDIN"); in = new StandardInputStream(); } else { _logger.info("reading from " + input); in = new FileInputStream(input); } List<Double> data = new ArrayList<Double>(); BufferedReader dataSetInput = new BufferedReader(new InputStreamReader(in)); int lineCount = 1; try { // read data set boolean cutOffTail = !Double.isNaN(xMax); boolean cutOffHead = !Double.isNaN(xMin); for (String line; (line = dataSetInput.readLine()) != null; lineCount++) { if (lineCount % 100000 == 0) _logger.info(String.format("read %,d data points", lineCount)); if (line.startsWith("#")) continue; double v = Double.parseDouble(line); if (cutOffTail && v > xMax) continue; if (cutOffHead && v < xMin) continue; data.add(v); } double[] value = new double[data.size()]; for (int i = 0; i < data.size(); ++i) { value[i] = data.get(i); } // draw histogram HistogramDataset dataSet = new HistogramDataset(); dataSet.setType(HistogramType.FREQUENCY); dataSet.addSeries("data", value, numBins); JFreeChart chart = ChartFactory.createHistogram(null, null, "Frequency", dataSet, PlotOrientation.VERTICAL, false, false, false); if (title != null) { chart.setTitle(title); } ValueAxis domainAxis = chart.getXYPlot().getDomainAxis(); if (cutOffHead) { domainAxis.setLowerBound(xMin); } if (cutOffTail) { domainAxis.setUpperBound(xMax); } if (xLabel != null) { domainAxis.setLabel(xLabel); } if (yLog) { LogarithmicAxis logAxis = new LogarithmicAxis("Frequency"); logAxis.setAllowNegativesFlag(true); logAxis.setAutoRangeIncludesZero(true); chart.getXYPlot().setRangeAxis(logAxis); } if (!Double.isNaN(yMin)) { chart.getXYPlot().getRangeAxis().setLowerBound(yMin); } if (!Double.isNaN(yMax)) { chart.getXYPlot().getRangeAxis().setUpperBound(yMax); } File outputFile = new File(output); _logger.info("output to " + outputFile); ChartUtilities.saveChartAsPNG(outputFile, chart, width, height); } catch (Exception e) { throw new Exception(String.format("error at line %d: %s", lineCount, e)); } }
From source file:playground.thibautd.parknride.analysis.ParkAndRideTripsAnalyzer.java
private static ChartUtil createProportionHistogram(final String title, final String xName, final String yName, final double[] values, final int nBins, final double min, final double max) { HistogramDataset dataset = new HistogramDataset(); dataset.addSeries(xName, values, nBins, min, max); JFreeChart chart = ChartFactory.createHistogram(title, xName, yName, dataset, PlotOrientation.VERTICAL, false, false, false);//from w w w . java 2 s . c o m tuneHistogramAppearence(chart); return new WrapperChartUtil(chart); }
From source file:MSUmpire.DIA.MixtureModelKDESemiParametric.java
public void GeneratePlot(String pngfile) throws IOException { String modelfile = FilenameUtils.getFullPath(pngfile) + "/" + FilenameUtils.getBaseName(pngfile) + "_ModelPoints.txt"; FileWriter writer = new FileWriter(modelfile); double[] IDObs = new double[IDEmpiricalDist.getN()]; double[] DecoyObs = new double[DecoyEmpiricalDist.getN()]; for (int i = 0; i < IDEmpiricalDist.getN(); i++) { IDObs[i] = IDEmpiricalDist.getObs(i); }// w ww .j a v a2 s .co m for (int i = 0; i < DecoyEmpiricalDist.getN(); i++) { DecoyObs[i] = DecoyEmpiricalDist.getObs(i); } XYSeries model1 = new XYSeries("Incorrect matches"); XYSeries model2 = new XYSeries("Correct matches"); XYSeries model3 = new XYSeries("All target hits"); writer.write("UScore\tModel\tCorrect\tDecoy\n"); for (int i = 0; i < NoBinPoints; i++) { model1.add(model_kde_x[i], decoy_kde_y[i]); model2.add(model_kde_x[i], correct_kde_y[i]); model3.add(model_kde_x[i], model_kde_y[i]); writer.write(model_kde_x[i] + "\t" + model_kde_y[i] + "\t" + correct_kde_y[i] + "\t" + decoy_kde_y[i] + "\n"); } writer.close(); MixtureModelProb = new float[NoBinPoints + 1][3]; float positiveaccu = 0f; float negativeaccu = 0f; MixtureModelProb[0][0] = (float) model2.getMaxX() + Float.MIN_VALUE; MixtureModelProb[0][1] = 1f; MixtureModelProb[0][2] = 1f; for (int i = 1; i < NoBinPoints + 1; i++) { double positiveNumber = correct_kde_y[NoBinPoints - i]; double negativeNumber = decoy_kde_y[NoBinPoints - i]; MixtureModelProb[i][0] = (float) model_kde_x[NoBinPoints - i]; positiveaccu += positiveNumber; negativeaccu += negativeNumber; MixtureModelProb[i][2] = 0.999999f * (float) (positiveNumber / (negativeNumber + positiveNumber)); MixtureModelProb[i][1] = 0.999999f * (float) (positiveaccu / (negativeaccu + positiveaccu)); } XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(model1); dataset.addSeries(model2); dataset.addSeries(model3); HistogramDataset histogramDataset = new HistogramDataset(); histogramDataset.setType(HistogramType.SCALE_AREA_TO_1); histogramDataset.addSeries("ID hits", IDObs, 100); histogramDataset.addSeries("Decoy hits", DecoyObs, 100); //histogramDataset.addSeries("Model hits", ModelObs, 100); JFreeChart chart = ChartFactory.createHistogram(FilenameUtils.getBaseName(pngfile), "Score", "Hits", histogramDataset, PlotOrientation.VERTICAL, true, false, false); XYPlot plot = chart.getXYPlot(); NumberAxis domain = (NumberAxis) plot.getDomainAxis(); domain.setRange(min, max); plot.setBackgroundPaint(Color.white); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setForegroundAlpha(0.8f); chart.setBackgroundPaint(Color.white); XYLineAndShapeRenderer render = new XYLineAndShapeRenderer(); plot.setDataset(1, dataset); plot.setRenderer(1, render); plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD); try { ChartUtilities.saveChartAsPNG(new File(pngfile), chart, 1000, 600); } catch (IOException e) { } }
From source file:Core.CircuitEvolution.QPace4.HistogramDemo.java
/** * Creates a sample {@link HistogramDataset}. * /* w w w. ja v a 2 s . c o m*/ * @return The dataset. */ private IntervalXYDataset createDataset() { HistogramDataset dataset = new HistogramDataset(); dataset.setType(HistogramType.RELATIVE_FREQUENCY); dataset.addSeries("H1", gaussianData(1000, 3.0), 20); dataset.addSeries("H0", gaussianData(1000, 0), 20); return dataset; }