Source code for sfepy.scripts.plot_times

#!/usr/bin/env python
"""
Plot time steps, times of time steps and time deltas in a HDF5 results file.
"""
import sys
sys.path.append('.')
from argparse import ArgumentParser

import numpy as nm
import matplotlib.pyplot as plt

from sfepy.postprocess.time_history import extract_times

helps = {
    'logarithmic' :
    'plot time steps in logarithmic scale',
}

[docs] def main(): parser = ArgumentParser(description=__doc__) parser.add_argument('--version', action='version', version='%(prog)s') parser.add_argument('-l', '--logarithmic', action='store_true', dest='logarithmic', default=False, help=helps['logarithmic']) parser.add_argument('filename') options = parser.parse_args() filename = options.filename plt.rcParams['lines.linewidth'] = 3 plt.rcParams['lines.markersize'] = 9 fontsize = 16 steps, times, nts, dts = extract_times(filename) dts[-1] = nm.nan ax = plt.subplot(211) if options.logarithmic: l1, = ax.semilogy(steps, dts, 'b') else: l1, = ax.plot(steps, dts, 'b') ax.set_xlabel('step', fontsize=fontsize) ax.set_ylabel(r'$\Delta t$', fontsize=fontsize) ax.grid(True) ax = ax.twinx() l2, = ax.plot(steps, times, 'g') ax.set_ylabel(r'$t$', fontsize=fontsize) ax.legend([l1, l2], [r'$\Delta t$', r'$t$'], loc=0) ax = plt.subplot(212) if options.logarithmic: ax.semilogy(times, dts, 'b+') else: ax.plot(times, dts, 'b+') ax.set_xlabel(r'$t$', fontsize=fontsize) ax.set_ylabel(r'$\Delta t$', fontsize=fontsize) ax.grid(True) plt.tight_layout() plt.show()
if __name__ == '__main__': main()