--- a
+++ b/ants/plotting/plot_directory.py
@@ -0,0 +1,118 @@
+"""
+Functions for plotting ants images
+"""
+
+
+__all__ = [
+    "plot_directory"
+]
+
+import fnmatch
+import math
+import os
+import warnings
+
+from matplotlib import gridspec
+import matplotlib.pyplot as plt
+import matplotlib.patheffects as path_effects
+import matplotlib.lines as mlines
+import matplotlib.patches as patches
+import matplotlib.mlab as mlab
+import matplotlib.animation as animation
+from mpl_toolkits.axes_grid1.inset_locator import inset_axes
+
+
+import numpy as np
+
+import ants
+
+
+def plot_directory(
+    directory,
+    recursive=False,
+    regex="*",
+    save_prefix="",
+    save_suffix="",
+    axis=None,
+    **kwargs
+):
+    """
+    Create and save an ANTsPy plot for every image matching a given regular
+    expression in a directory, optionally recursively. This is a good function
+    for quick visualize exploration of all of images in a directory
+
+    ANTsR function: N/A
+
+    Arguments
+    ---------
+    directory : string
+        directory in which to search for images and plot them
+
+    recursive : boolean
+        If true, this function will search through all directories under
+        the given directory recursively to make plots.
+        If false, this function will only create plots for images in the
+        given directory
+
+    regex : string
+        regular expression used to filter out certain filenames or suffixes
+
+    save_prefix : string
+        sub-string that will be appended to the beginning of all saved plot filenames.
+        Default is to add nothing.
+
+    save_suffix : string
+        sub-string that will be appended to the end of all saved plot filenames.
+        Default is add nothing.
+
+    kwargs : keyword arguments
+        any additional arguments to pass onto the `ants.plot` function.
+        e.g. overlay, alpha, cmap, etc. See `ants.plot` for more options.
+
+    Example
+    -------
+    >>> import ants
+    >>> ants.plot_directory(directory='~/desktop/testdir',
+                            recursive=False, regex='*')
+    """
+
+    def has_acceptable_suffix(fname):
+        suffixes = {".nii.gz"}
+        return sum([fname.endswith(sx) for sx in suffixes]) > 0
+
+    if directory.startswith("~"):
+        directory = os.path.expanduser(directory)
+
+    if not os.path.isdir(directory):
+        raise ValueError("directory %s does not exist!" % directory)
+
+    for root, dirnames, fnames in os.walk(directory):
+        for fname in fnames:
+            if fnmatch.fnmatch(fname, regex) and has_acceptable_suffix(fname):
+                load_fname = os.path.join(root, fname)
+                fname = fname.replace(".".join(fname.split(".")[1:]), "png")
+                fname = fname.replace(".png", "%s.png" % save_suffix)
+                fname = "%s%s" % (save_prefix, fname)
+                save_fname = os.path.join(root, fname)
+                img = ants.image_read(load_fname)
+
+                if axis is None:
+                    axis_range = [i for i in range(img.dimension)]
+                else:
+                    axis_range = axis if isinstance(axis, (list, tuple)) else [axis]
+
+                if img.dimension > 2:
+                    for axis_idx in axis_range:
+                        filename = save_fname.replace(".png", "_axis%i.png" % axis_idx)
+                        ncol = int(math.sqrt(img.shape[axis_idx]))
+                        ants.plot(
+                            img,
+                            axis=axis_idx,
+                            nslices=img.shape[axis_idx],
+                            ncol=ncol,
+                            filename=filename,
+                            **kwargs
+                        )
+                else:
+                    filename = save_fname
+                    ants.plot(img, filename=filename, **kwargs)