#!/usr/bin/env python3 import matplotlib.pyplot as plt import numpy as np import os import argparse from matplotlib.ticker import MultipleLocator # read command line argument: parser = argparse.ArgumentParser( description="plot elevation versus distance at boundaries") parser.add_argument("location", help="boundary location") args = parser.parse_args() if args.location == 'top': inputFilename = "top_boundary.txt" elif args.location == 'bottom': inputFilename = "bottom_boundary.txt" elif args.location == 'left': inputFilename = "left_boundary.txt" elif args.location == 'right': inputFilename = "right_boundary.txt" def detach_display(): x, y, z = np.loadtxt(inputFilename, delimiter=' ', unpack=True) fig, ax = plt.subplots() plt.plot(x,z, label='elevation') plt.xlabel('x / m') plt.ylabel('z / m') ax.yaxis.set_minor_locator(MultipleLocator(0.2)) plt.grid(True, which='minor') plt.show() if os.fork(): # parent pass else: # child detach_display()