import pandas as pd               #Python Data Analysis Library
import matplotlib.pyplot as plt   #Visualization Library
import numpy as np                #numPy is a general-purpose array-processing package
%matplotlib inline   

times = np.array([ 93.,  96.,  99., 102., 105., 108., 111., 114., 117.,
  120., 123., 126., 129., 132., 135., 138., 141., 144.,
  147., 150., 153., 156., 159., 162.])
temps = np.array([310.7, 308.0, 296.4, 289.5, 288.5, 287.1, 301.1, 308.3,
  311.5, 305.1, 295.6, 292.4, 290.4, 289.1, 299.4, 307.9,
  316.6, 293.9, 291.2, 289.8, 287.1, 285.8, 303.3, 310.])


# Create a figure
fig = plt.figure(figsize=(10, 6))
      
# Ask, out of a 1x1 grid, the first axes.
ax = fig.add_subplot(1, 1, 1)
      
# Plot times as x-variable and temperatures as y-variable
ax.plot(times, temps)

# Add some labels to the plot
ax.set_xlabel('Time')
ax.set_ylabel('Temperature')
    
# Prompt the notebook to re-display the figure after we modify it
fig

ax.set_title('GFS Temperature Forecast', fontdict={'size':16})

fig

temps_1000 = np.array([316.0, 316.3, 308.9, 304.0, 302.0, 300.8, 306.2, 309.8,
    313.5, 313.3, 308.3, 304.9, 301.0, 299.2, 302.6, 309.0,
    311.8, 304.7, 304.6, 301.8, 300.6, 299.9, 306.3, 311.3])
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(1, 1, 1)

# Specify how our lines should look
ax.plot(times, temps, color='tab:red', label='Temperature (surface)')
ax.plot(times, temps_1000, color='tab:red', linestyle='--',
label='Temperature (isobaric level)')

# Same as above
ax.set_xlabel('Time')
ax.set_ylabel('Temperature')
ax.set_title('Temperature Forecast')
ax.grid(True)
ax.legend(loc='upper left')


fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(1, 1, 1)

# Specify no line with circle markers
ax.scatter(temps, temps_1000)

ax.set_xlabel('Temperature (surface)')
ax.set_ylabel('Temperature (1000 hPa)')
ax.set_title('Temperature Cross Plot')
ax.grid(True)