All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.math.plot.Plot3DPanel Maven / Gradle / Ivy

There is a newer version: 1.0.1
Show newest version
package org.math.plot;

import java.awt.*;

import org.math.plot.canvas.*;
import org.math.plot.utils.*;

/**
 * BSD License
 * 
 * @author Yann RICHET
 */
/** class for ascending compatibility */
public class Plot3DPanel extends PlotPanel {

    private static final long serialVersionUID = 1L;

    public void setDefaultZoom(double zoom_factor) {
        ((Plot3DCanvas) plotCanvas).setDefaultZoom(zoom_factor);
        repaint();
    }

    public Plot3DPanel() {
        super(new Plot3DCanvas());
    }

    public Plot3DPanel(double[] min, double[] max, String[] axesScales, String[] axesLabels) {
        super(new Plot3DCanvas(min, max, axesScales, axesLabels));
    }

    public Plot3DPanel(PlotCanvas _canvas, String legendOrientation) {
        super(_canvas, legendOrientation);
    }

    public Plot3DPanel(PlotCanvas _canvas) {
        super(_canvas);
    }

    public Plot3DPanel(String legendOrientation) {
        super(new Plot3DCanvas(), legendOrientation);
    }

    /**
     * Adds a scatter plot (each data point is plotted as a single dot
     * marker) to the current plot panel.
     * @param name Name for the plot, which will be used in the legend.
     * (String)
     * @param color Plot color. (Color)
     * @param XY Array of triple double. For each triple, first one contains the X position
     * of the data points, second contains Y position, third contains Z position.
     * 
* Each array of the triple * must be of the same length; if not a ArrayIndexOutOfBoundsException * exception will be thrown. *
* Each data set must come in * array of triple of double; if not a ArrayIndexOutOfBoundsException exception * will be thrown. * @return the index of the plot in the panel (int). * @see #addLinePlot(String,Color,double[]...) * @see #addBarPlot(String, Color, double[]...) * @see #addBoxPlot(String, Color, double[][], double[][]) */ public int addScatterPlot(String name, Color color, double[][] XY) { return ((Plot3DCanvas) plotCanvas).addScatterPlot(name, color, XY); } public int addScatterPlot(String name, Color color, double[] X, double[] Y, double[] Z) { return ((Plot3DCanvas) plotCanvas).addScatterPlot(name, color, X, Y, Z); } public int addScatterPlot(String name, double[][] XY) { return addScatterPlot(name, getNewColor(), XY); } public int addScatterPlot(String name, double[] X, double[] Y, double[] Z) { return addScatterPlot(name, getNewColor(), X, Y, Z); } /** * Adds a line plot (each data point is connected to the next one by a * solid line) to the current plot panel. * @param name Name for the plot, which will be used in the legend. * (String) * @param color Plot color. (Color) * @param XY Array of triple double. For each triple, first one contains the X position * of the data points, second contains Y position, third contains Z position. *
* Each array of the triple * must be of the same length; if not a ArrayIndexOutOfBoundsException * exception will be thrown. *
* Each data set must come in * array of triple of double; if not a ArrayIndexOutOfBoundsException exception * will be thrown. * @return the index of the plot in the panel (int). * @see #addScatterPlot(String,Color,double[]...) * @see #addBarPlot(String, Color, double[]...) * @see #addBoxPlot(String, Color, double[]... ) */ public int addLinePlot(String name, Color color, double[][] XY) { return ((Plot3DCanvas) plotCanvas).addLinePlot(name, color, XY); } public int addLinePlot(String name, Color color, double[] X, double[] Y, double[] Z) { return ((Plot3DCanvas) plotCanvas).addLinePlot(name, color, X, Y, Z); } public int addLinePlot(String name, double[][] XY) { return addLinePlot(name, getNewColor(), XY); } public int addLinePlot(String name, double[] X, double[] Y, double[] Z) { return addLinePlot(name, getNewColor(), X, Y, Z); } /** * Adds a bar plot (each data point is shown as a dot marker connected to * the horizontal axis by a vertical line) to the current plot panel. * @param name Name for the plot, which will be used in the legend. * (String) * @param color Plot color. (Color) * @param XY Array of triple double. For each triple, first one contains the X position * of the data points, second contains Y position, third contains Z position. *
* Each array of the triple * must be of the same length; if not a ArrayIndexOutOfBoundsException * exception will be thrown. *
* Each data set must come in * array of triple of double; if not a ArrayIndexOutOfBoundsException exception * will be thrown. * @return the index of the plot in the panel (int). * @see #addScatterPlot(String,Color,double[]...) * @see #addLinePlot(String, Color, double[]...) * @see #addBoxPlot(String, Color, double[]... ) */ public int addBarPlot(String name, Color color, double[][] XY) { return ((Plot3DCanvas) plotCanvas).addBarPlot(name, color, XY); } public int addBarPlot(String name, Color color, double[] X, double[] Y, double[] Z) { return ((Plot3DCanvas) plotCanvas).addBarPlot(name, color, X, Y, Z); } public int addBarPlot(String name, double[][] XY) { return addBarPlot(name, getNewColor(), XY); } public int addBarPlot(String name, double[] X, double[] Y, double[] Z) { return addBarPlot(name, getNewColor(), X, Y, Z); } public int addBoxPlot(String name, Color c, double[][] XY, double[][] dX) { return ((Plot3DCanvas) plotCanvas).addBoxPlot(name, c, XY, dX); } public int addBoxPlot(String name, double[][] XY, double[][] dX) { return addBoxPlot(name, getNewColor(), XY, dX); } public int addBoxPlot(String name, Color c, double[][] XYdX) { return ((Plot3DCanvas) plotCanvas).addBoxPlot(name, c, Array.getColumnsRangeCopy(XYdX, 0, 2), Array.getColumnsRangeCopy(XYdX, 3, 5)); } public int addBoxPlot(String name, double[][] XYdX) { return addBoxPlot(name, getNewColor(), XYdX); } public int addHistogramPlot(String name, Color c, double[][] XY, double[][] dX) { return ((Plot3DCanvas) plotCanvas).addHistogramPlot(name, c, XY, dX); } public int addHistogramPlot(String name, double[][] XY, double[][] dX) { return addHistogramPlot(name, getNewColor(), XY, dX); } public int addHistogramPlot(String name, Color c, double[][] XYdX) { return ((Plot3DCanvas) plotCanvas).addHistogramPlot(name, c, Array.getColumnsRangeCopy(XYdX, 0, 2), Array.getColumnsRangeCopy(XYdX, 3, 4)); } public int addHistogramPlot(String name, double[][] XYdX) { return addHistogramPlot(name, getNewColor(), XYdX); } public int addHistogramPlot(String name, Color c, double[][] XY, int nX, int nY) { return ((Plot3DCanvas) plotCanvas).addHistogramPlot(name, c, XY, nX, nY); } public int addHistogramPlot(String name, double[][] XY, int nX, int nY) { return addHistogramPlot(name, getNewColor(), XY, nX, nY); } public int addHistogramPlot(String name, Color c, double[][] XY, double[] boundsX, double[] boundsY) { return ((Plot3DCanvas) plotCanvas).addHistogramPlot(name, c, XY, boundsX, boundsY); } public int addHistogramPlot(String name, double[][] XY, double[] boundsX, double[] boundsY) { return addHistogramPlot(name, getNewColor(), XY, boundsX, boundsY); } public int addHistogramPlot(String name, Color c, double[][] XY, double minX, double maxX, int nX, double minY, double maxY, int nY) { return ((Plot3DCanvas) plotCanvas).addHistogramPlot(name, c, XY, minX, maxX, nX, minY, maxY, nY); } public int addHistogramPlot(String name, double[][] XY, double minX, double maxX, int nX, double minY, double maxY, int nY) { return addHistogramPlot(name, getNewColor(), XY, minX, maxX, nX, minY, maxY, nY); } public int addGridPlot(String name, Color c, double[] X, double[] Y, double[][] Z) { return ((Plot3DCanvas) plotCanvas).addGridPlot(name, c, X, Y, Z); } public int addGridPlot(String name, double[] X, double[] Y, double[][] Z) { return addGridPlot(name, getNewColor(), X, Y, Z); } public int addGridPlot(String name, Color c, double[][] XYZMatrix) { return ((Plot3DCanvas) plotCanvas).addGridPlot(name, c, XYZMatrix); } public int addGridPlot(String name, double[][] XYZMatrix) { return addGridPlot(name, getNewColor(), XYZMatrix); } public int addCloudPlot(String name, Color color, double[][] sampleXYZ, int nX, int nY, int nZ) { return ((Plot3DCanvas) plotCanvas).addCloudPlot(name, color, sampleXYZ, nX, nY, nZ); } public int addCloudPlot(String name, double[][] sampleXYZ, int nX, int nY, int nZ) { return addCloudPlot(name, getNewColor(), sampleXYZ, nX, nY, nZ); } @Override public int addPlot(String type, String name, Color c, double[]... XY) { if (type.equalsIgnoreCase(SCATTER)) { return addScatterPlot(name, c, XY); } else if (type.equalsIgnoreCase(LINE)) { return addLinePlot(name, c, XY); } else if (type.equalsIgnoreCase(BAR)) { return addBarPlot(name, c, XY); } else if (type.equalsIgnoreCase(HISTOGRAM)) { return addHistogramPlot(name, c, XY); } else if (type.equalsIgnoreCase(BOX)) { return addBoxPlot(name, c, XY); } else if (type.equalsIgnoreCase(GRID)) { return addGridPlot(name, c, XY); } else { throw new IllegalArgumentException("Plot type is unknown : " + type); } } public void rotate(double theta, double phi) { ((Plot3DCanvas) plotCanvas).rotate(theta, phi); repaint(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy