#!/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.xyz" lineColour = "tab:blue" plotTitle = 'Top boundary profile' elif args.location == 'bottom': inputFilename = "bottom_boundary.xyz" lineColour = "tab:green" plotTitle = 'Bottom boundary profile' elif args.location == 'left': inputFilename = "left_boundary.xyz" lineColour = "tab:red" plotTitle = 'Left boundary profile' elif args.location == 'right': inputFilename = "right_boundary.xyz" lineColour = "tab:orange" plotTitle = 'Right boundary profile' def detach_display(): x, y, z = np.loadtxt(inputFilename, delimiter=' ', unpack=True) fig, ax = plt.subplots() plt.plot(x,z, color=lineColour, label='elevation') plt.xlabel('x / m') plt.ylabel('z / m') plt.title(plotTitle) ax.yaxis.set_minor_locator(MultipleLocator(0.2)) plt.grid(True, which='minor') plt.show() if os.fork(): # parent pass else: # child detach_display()