diff --git a/scripts/textometry/visualiseProfile.py b/scripts/textometry/visualiseProfile.py
index 54c5ef580b1d3616ed58f9eef74a0955fcd3e325..47bc44af95aa6e3bbd651bb98fa803e08c715faa 100755
--- a/scripts/textometry/visualiseProfile.py
+++ b/scripts/textometry/visualiseProfile.py
@@ -12,9 +12,10 @@ def gate(measure):
     return [1 if i >= first and i < last else 0
             for i in range(1, 1 + measure['totalSize'])]
 
-def plotProfile(profile, outputPath):
+def plotDensity(profile, outputPath):
     plot.figure(figsize=(16,13))
-    ax = seaborn.lineplot(profile)
+    l = len(profile)
+    ax = seaborn.lineplot(x=[100*i/(l-1) for i in range(l)], y=profile)
     ax.set_xlabel("Position")
     ax.set_xlim(0, 100)
     ax.set_ylim(0)
@@ -29,7 +30,7 @@ def plotProfile(profile, outputPath):
 def sumProfiles(sameSizeProfiles):
     return list(map(sum, zip(*sameSizeProfiles)))
 
-def computeProfile(measures, resolution=100):
+def computeProfile(measures, resolution):
     bySize, count = {}, 0
     for measure in measures:
         distribution = gate(measure)
@@ -39,13 +40,28 @@ def computeProfile(measures, resolution=100):
             bySize[l] = []
         bySize[l].append(distribution)
     resampled = map(resample(resolution), map(sumProfiles, bySize.values()))
-    return [100*x/count for x in sumProfiles(list(resampled))]
+    return [resolution*x/count for x in sumProfiles(list(resampled))]
 
-def visualiseProfile(measures, outputPath):
-    profile = computeProfile(measures)
+def visualiseProfile(measures, outputPath, resolution=100):
+    profile = computeProfile(measures, resolution)
     toTSV(prepare(f"{outputPath}/profile.tsv"), profile, sortBy=None)
-    plotProfile(profile, f"{outputPath}/profile.png")
+    plotDensity(profile, f"{outputPath}/profile.png")
+
+def parseArgs(args):
+    positional = []
+    kwargs = {}
+    i = 0
+    while i < len(args):
+        if args[i] == '--resolution':
+            kwargs['resolution'] = int(args[i+1])
+            i += 1
+        else:
+            positional.append(args[i])
+        i += 1
+    return positional, kwargs
 
 if __name__ == '__main__':
-    visualiseProfile([measure for _, measure in fromTSV(argv[1]).iterrows()],
-                     argv[2])
+    args, kwargs = parseArgs(argv[1:])
+    visualiseProfile([measure for _, measure in fromTSV(args[0]).iterrows()],
+                     args[1],
+                     **kwargs)