diff --git a/ch.psi.plot/src/main/java/ch/psi/plot/jzy3d/MatrixPlot.java b/ch.psi.plot/src/main/java/ch/psi/plot/jzy3d/MatrixPlot.java index 6b2cc94..4e7c217 100644 --- a/ch.psi.plot/src/main/java/ch/psi/plot/jzy3d/MatrixPlot.java +++ b/ch.psi.plot/src/main/java/ch/psi/plot/jzy3d/MatrixPlot.java @@ -607,10 +607,15 @@ public class MatrixPlot extends MatrixPlotBase { mapper = new Mapper() { @Override public double f(double x, double y) { - if (data == null) { + if ((data == null)||(data.length==0)) { return Double.NaN; } - return data[(int) Math.round((y - rangeY.getMin()) / ((rangeY.getMax() - rangeY.getMin()) / (data.length - 1)))][(int) Math.round((x - rangeX.getMin()) / ((rangeX.getMax() - rangeX.getMin()) / (data[0].length - 1)))]; + int indexY=(int) Math.round((y - rangeY.getMin()) / ((rangeY.getMax() - rangeY.getMin()) / (data.length - 1))); + int indexX=(int) Math.round((x - rangeX.getMin()) / ((rangeX.getMax() - rangeX.getMin()) / (data[0].length - 1))); + double ret = data[indexY][indexX]; + if (Double.isInfinite(ret)) + ret=Double.NaN; + return ret; } };