diff --git a/plotting.py b/plotting.py
index 4340f7abd012f31f59fac7783f01a817489995e4..734180733cb40a43f9b1a2d365673cb93f90358d 100644
--- a/plotting.py
+++ b/plotting.py
@@ -86,7 +86,7 @@ def plot_NN_vs_var_2D(plotname, means,
             print("Setting zmin to {}".format(zmin))
         lvls = np.logspace(math.log10(zmin), math.log10(zmax), ncontours)
         if only_pixels:
-            pcm = ax.pcolormesh(sequence1, sequence2, scores, norm=matplotlib.colors.LogNorm(vmin=zmin, vmax=zmax), cmap=cmap)
+            pcm = ax.pcolormesh(sequence1, sequence2, scores, norm=matplotlib.colors.LogNorm(vmin=zmin, vmax=zmax), cmap=cmap, linewidth=0, rasterized=True)
         else:
             pcm = ax.contourf(sequence1, sequence2, scores, levels=lvls, norm=matplotlib.colors.LogNorm(vmin=zmin, vmax=zmax), cmap=cmap)
         if black_contourlines:
@@ -95,7 +95,7 @@ def plot_NN_vs_var_2D(plotname, means,
         cbar = fig.colorbar(pcm, ax=ax, extend='max', ticks=lvls, format=l_f)
     else:
         if only_pixels:
-            pcm = ax.pcolormesh(sequence1, sequence2, scores, norm=matplotlib.colors.Normalize(vmin=zmin, vmax=zmax), cmap=cmap)
+            pcm = ax.pcolormesh(sequence1, sequence2, scores, norm=matplotlib.colors.Normalize(vmin=zmin, vmax=zmax), cmap=cmap, linewidth=0, rasterized=True)
         else:
             pcm = ax.contourf(sequence1, sequence2, scores, ncontours, norm=matplotlib.colors.Normalize(vmin=zmin, vmax=zmax), cmap=cmap)
         if black_contourlines:
@@ -248,16 +248,10 @@ if __name__ == "__main__":
                           var1_label="met [GeV]", var2_label="mt [GeV]")
 
     import keras.backend as K
-    # single neuron
-    def eval_single_neuron(x):
-        layer = 3
-        neuron = 0
-        x_eval = c.scaler.transform(x)
-        f = K.function([c.model.input]+[K.learning_phase()], [c.model.layers[layer].output])
-        return f([x_eval])[0][:,neuron]
+    from .tfhelpers import get_single_neuron_function
 
     plot_NN_vs_var_2D("mt_vs_met_crosscheck.pdf", means=mean_signal,
-                      scorefun=eval_single_neuron,
+                      scorefun=get_single_neuron_function(K, c.model, layer=3, neuron=0, scaler=c.scaler),
                       var1_index=c.branches.index("met"), var1_range=(0, 1000, 10),
                       var2_index=c.branches.index("mt"), var2_range=(0, 500, 10),
                       var1_label="met [GeV]", var2_label="mt [GeV]")
diff --git a/tfhelpers.py b/tfhelpers.py
new file mode 100644
index 0000000000000000000000000000000000000000..3bf9a44588753c678f8cca66fda4d718cb799b60
--- /dev/null
+++ b/tfhelpers.py
@@ -0,0 +1,14 @@
+"Helper functions using keras or tensorflow"
+
+def get_single_neuron_function(K, model, layer, neuron, scaler=None):
+
+    f = K.function([model.input]+[K.learning_phase()], [model.layers[layer].output[:,neuron]])
+
+    def eval_single_neuron(x):
+        if scaler is not None:
+            x_eval = scaler.transform(x)
+        else:
+            x_eval = x
+        return f([x_eval])[0]
+
+    return eval_single_neuron