def METHOD_NAME(gridData):
    if gridData.shape[0] % ROWS != 0 or gridData.shape[1] != COLS:
        raise ("Incompatible grid dimensionality: check data and assumed dimensions.")
    grids = gridData.shape[0] // ROWS
    print("Reshaping into", grids, "grids of shape (", ROWS, ",", COLS, ")")
    gridData = gridData.reshape((grids, ROWS, COLS))
    plotAnotherRange = True
    while plotAnotherRange:
        start = -1
        end = 1
        print("Select the range of iterations to generate grid plots from.")
        print("0 means plot all iterations.")
        while (start < 0 or grids - 1 < start) or (end < 1 or grids < end):
            start = int(input("Start: "))
            # If start is set to zero, plot everything.
            if start == 0:
                continue
            end = int(input("End: "))
        if start == 0:
            print("\nPlotting whole shebang!")
        else:
            print("\nPlotting range from iteration", start, "to", end)
        # Plotting time!
        plt.figure()
        plt.ion()
        plt.imshow(gridData[start], cmap="hot", interpolation="nearest")
        plt.colorbar()
        plt.pause(0.001)  # Pause so that that GUI can do its thing.
        for g in gridData[start + 1 : end]:
            plt.imshow(g, cmap="hot", interpolation="nearest")
            plt.pause(0.001)  # Pause so that that GUI can do its thing.
        plotAnotherRange = str.lower(input("Plot another range? (y/n): ")) == "y"