import os import re import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates sources = [ { 'source': 'This script', 'csv_name': 'levels.csv', 'tz': 'Etc/GMT-10' }, { 'source': 'MHL', 'csv_name': 'OceanTide-213470.Level.csv', 'tz': 'Etc/GMT-10' }, { 'source': 'BOM', 'csv_name': 'NSW_TP007.csv', 'tz': 'Australia/Sydney' }, ] fig, ax = plt.subplots(1, 1, figsize=(7, 4)) for s in sources: df = pd.read_csv(s['csv_name'], index_col=0, parse_dates=True) try: df = df.tz_localize(s['tz']) except TypeError: pass ax.plot(df.iloc[:, 0], label=s['source']) # Predicted tide in first column ax.legend() ax.set_xlim('2019-11-29', '2019-12-02') ax.set_ylabel('Predicted tide (m LAT)', labelpad=10) ax.xaxis.set_major_formatter(mdates.DateFormatter('%b-%d %H:%M')) ax.xaxis.set_tick_params(rotation=45) ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) png_name = os.path.join( os.path.dirname(__file__), os.path.basename(__file__).replace('.py', '.png').replace('_', '-')) plt.savefig(png_name, bbox_inches='tight', dpi=300)