56 lines
1.6 KiB
Java
56 lines
1.6 KiB
Java
package ch.psi.plot.xyz;
|
|
|
|
import ch.psi.plot.EventActionListener;
|
|
import ch.psi.plot.xyz.JFreeMatrixPlot;
|
|
import ch.psi.plot.xyz.JFreeMatrixPlotMetadata;
|
|
import ch.psi.plot.xyz.MatrixPlotData;
|
|
|
|
public class StaticMatrixPlotter {
|
|
|
|
public static void convert(double[][] data, MatrixPlotData matrixPlotData){
|
|
for (int i = 0; i < data.length; i++) {
|
|
for (int j = 0; j < data[0].length; j++) {
|
|
matrixPlotData.addData(matrixPlotData.getXValueBinned(i, j), matrixPlotData.getYValueBinned(i, j), data[i][j]);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void plot(String name, double minX, double maxX, double minY, double maxY, double minZ, double maxZ, final double[][] data){
|
|
JFreeMatrixPlotMetadata md = new JFreeMatrixPlotMetadata();
|
|
md.setNumberOfBinsX(data.length);
|
|
md.setNumberOfBinsY(data[0].length);
|
|
md.setMinX(minX);
|
|
md.setMaxX(maxX);
|
|
md.setMinY(minY);
|
|
md.setMaxY(maxY);
|
|
md.setMinValue(minZ);
|
|
md.setMaxValue(maxZ);
|
|
|
|
final MatrixPlotData matrixPlotData = new MatrixPlotData(md);
|
|
|
|
convert(data, matrixPlotData);
|
|
JFreeMatrixPlot plot = new JFreeMatrixPlot(name, matrixPlotData);
|
|
plot.plot();
|
|
plot.adaptColorMapScale();
|
|
|
|
class LocalEventActionListener implements EventActionListener{
|
|
@Override
|
|
public void performAction(Actions action) {
|
|
convert(data, matrixPlotData);
|
|
}
|
|
}
|
|
|
|
plot.addEventActionListener(new LocalEventActionListener());
|
|
|
|
}
|
|
|
|
public static void plot(String name, double[][] data){
|
|
plot(name, 0.0, (double)data.length, 0.0, (double)data[0].length, 0.0, 100.0, data );
|
|
}
|
|
|
|
public static void plot(double[][] data){
|
|
plot("test matrix plot", 0.0, data.length, 0.0, data[0].length, 0.0, 100.0, data );
|
|
}
|
|
|
|
}
|