#!/usr/bin/env python

import argparse

import matplotlib

matplotlib.use('Gtk3Agg')
from matplotlib import rcParams
from matplotlib import pyplot as plt

from mxdc.utils import xdi

rcParams['legend.loc'] = 'best'
rcParams['legend.fontsize'] = 8
rcParams['figure.facecolor'] = 'white'
rcParams['figure.edgecolor'] = 'white'
rcParams['font.family'] = 'Cantarell'
rcParams['font.size'] = 12

if __name__ == '__main__':
    
    
    parser = argparse.ArgumentParser(description='Plot XDI data')
    parser.add_argument('file',  help='File to plot')
    parser.add_argument('-x', type=str, help='X-axis column name')
    parser.add_argument('-y', type=str, help='Y-axis column name')
    
    args = parser.parse_args()
    XDI = xdi.read_xdi(args.file)
    names = XDI.get_names()
    
    xaxis = args.x or names[0]
    yaxis = args.y or names[-1]
    
    print('Columns: {}'.format(names))
    fields = {f.value:f for f in XDI['Column'].values()}
    print('Plotting: x={} vs y={}'.format(xaxis, yaxis))
    plt.plot(XDI.data[xaxis], XDI.data[yaxis])
    xfield = fields[xaxis]
    yfield = fields[yaxis]
    plt.xlabel('{} ({})'.format(xfield.value, xfield.units) if xfield.units else '{}'.format(xfield.value))
    plt.ylabel('{} ({})'.format(yfield.value, yfield.units) if yfield.units else '{}'.format(yfield.value))
    plt.show()
