In [1]:
import pylab
%run basics
%matplotlib


Using matplotlib backend: Qt4Agg

In [2]:
ncname = "../../Sites/RiggsCreek/Data/Processed/all/Riggs_2011_to_2014_L3.nc"
ds = qcio.nc_read_series(ncname)

In [21]:
ldt = ds.series["DateTime"]["Data"]
series_list = ['ps', 'Wd', 'Fsd', 'Ah', 'Flu', 'Ts', 'Fa', 'Precip', 'Ws', 'Fsu', 'Fg', 'Sws', 'Fld', 'Fn', 'Ta']
ylabel_list = [""]+series_list+[""]
ylabel_right_list = [""]
color_list = ["blue","red","green","yellow","magenta","black","cyan","brown"]
xsize = 15.0
ysize = len(series_list)*0.2
plt.ion
fig=plt.figure(0,figsize=(xsize,ysize))
ax1 = plt.subplot(111)
fig.canvas.set_window_title("Coverage")
plt.ylim([0,len(series_list)+1])
plt.xlim([ldt[0],ldt[-1]])
composite_lines = {}
for series,n in zip(series_list,range(1,len(series_list)+1)):
    data_series,f,a = qcutils.GetSeriesasMA(ds,series)
    percent = 100*numpy.ma.count(data_series)/len(data_series)
    ylabel_right_list.append("{0:.0f}".format(percent))
    ind_series = numpy.ma.ones(len(data_series))*float(n)
    ind_series = numpy.ma.masked_where(numpy.ma.getmaskarray(data_series)==True,ind_series)
    ax1.plot(ldt,ind_series,color=color_list[numpy.mod(n,8)],linewidth=1)
    #if series+"_composite" in ds.series.keys():
        #data_composite,f,a = qcutils.GetSeriesasMA(ds,series+"_composite")
    data_composite = numpy.ma.masked_all_like(data_series)
    ind_composite = numpy.ma.ones(len(data_composite))*float(n)
    ind_composite = numpy.ma.masked_where(numpy.ma.getmaskarray(data_composite)==True,ind_composite)
    composite_lines[series], = ax1.plot(ldt,ind_composite,color=color_list[numpy.mod(n,8)],linewidth=4)
ylabel_posn = range(0,len(series_list)+2)
pylab.yticks(ylabel_posn,ylabel_list)
ylabel_right_list.append("")
ax2 = ax1.twinx()
pylab.yticks(ylabel_posn,ylabel_right_list)
fig.tight_layout()
plt.show()

In [22]:
fig=plt.figure(0)
plt.clf()
ax1 = plt.subplot(111)
fig.canvas.set_window_title("Coverage")
plt.ylim([0,len(series_list)+1])
plt.xlim([ldt[0],ldt[-1]])
composite_lines = {}
for series,n in zip(series_list,range(1,len(series_list)+1)):
    data_series,f,a = qcutils.GetSeriesasMA(ds,series)
    percent = 100*numpy.ma.count(data_series)/len(data_series)
    ylabel_right_list.append("{0:.0f}".format(percent))
    ind_series = numpy.ma.ones(len(data_series))*float(n)
    ind_series = numpy.ma.masked_where(numpy.ma.getmaskarray(data_series)==True,ind_series)
    ax1.plot(ldt,ind_series,color=color_list[numpy.mod(n,8)],linewidth=1)
    #if series+"_composite" in ds.series.keys():
        #data_composite,f,a = qcutils.GetSeriesasMA(ds,series+"_composite")
    data_composite = numpy.ma.masked_all_like(data_series)
    ind_composite = numpy.ma.ones(len(data_composite))*float(n)
    ind_composite = numpy.ma.masked_where(numpy.ma.getmaskarray(data_composite)==True,ind_composite)
    composite_lines[series], = ax1.plot(ldt,ind_composite,color=color_list[numpy.mod(n,8)],linewidth=4)
ylabel_posn = range(0,len(series_list)+2)
pylab.yticks(ylabel_posn,ylabel_list)
ylabel_right_list.append("")
ax2 = ax1.twinx()
pylab.yticks(ylabel_posn,ylabel_right_list)
fig.tight_layout()
plt.show()

In [16]:
sdate = ldt[0]
edate = dateutil.parser.parse("2012-01-01 00:30")
ind_ldt = range(len(ldt))
for n,series in enumerate(composite_lines.keys()):
    ind_composite = numpy.ma.ones(len(data_composite))*float(n+1)
    ind_composite = numpy.ma.masked_where(ind_ldt>1000,ind_composite)
    composite_lines[series].set_ydata(ind_composite)
    fig.canvas.draw()


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-aa624f2bba92> in <module>()
      6     ind_composite = numpy.ma.masked_where(ind_ldt>1000,ind_composite)
      7     composite_lines[series].set_ydata(ind_composite)
----> 8     fig.canvas.draw()

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_qt5agg.pyc in draw(self)
    146         # causes problems with code that uses the result of the
    147         # draw() to update plot elements.
--> 148         FigureCanvasAgg.draw(self)
    149         self._priv_update()
    150 

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_agg.pyc in draw(self)
    467 
    468         try:
--> 469             self.figure.draw(self.renderer)
    470         finally:
    471             RendererAgg.lock.release()

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
     57     def draw_wrapper(artist, renderer, *args, **kwargs):
     58         before(artist, renderer)
---> 59         draw(artist, renderer, *args, **kwargs)
     60         after(artist, renderer)
     61 

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/figure.pyc in draw(self, renderer)
   1077         dsu.sort(key=itemgetter(0))
   1078         for zorder, a, func, args in dsu:
-> 1079             func(*args)
   1080 
   1081         renderer.close_group('figure')

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
     57     def draw_wrapper(artist, renderer, *args, **kwargs):
     58         before(artist, renderer)
---> 59         draw(artist, renderer, *args, **kwargs)
     60         after(artist, renderer)
     61 

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.pyc in draw(self, renderer, inframe)
   2090 
   2091         for zorder, a in dsu:
-> 2092             a.draw(renderer)
   2093 
   2094         renderer.close_group('axes')

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
     57     def draw_wrapper(artist, renderer, *args, **kwargs):
     58         before(artist, renderer)
---> 59         draw(artist, renderer, *args, **kwargs)
     60         after(artist, renderer)
     61 

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/lines.pyc in draw(self, renderer)
    663 
    664         if self._invalidy or self._invalidx:
--> 665             self.recache()
    666         self.ind_offset = 0  # Needed for contains() method.
    667         if self._subslice and self.axes:

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/lines.pyc in recache(self, always)
    575             x = self._x
    576         if always or self._invalidy:
--> 577             yconv = self.convert_yunits(self._yorig)
    578             if ma.isMaskedArray(self._yorig):
    579                 y = ma.asarray(yconv, np.float_)

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/artist.pyc in convert_yunits(self, y)
    170         if ax is None or ax.yaxis is None:
    171             return y
--> 172         return ax.yaxis.convert_units(y)
    173 
    174     def set_axes(self, axes):

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/axis.pyc in convert_units(self, x)
   1441     def convert_units(self, x):
   1442         if self.converter is None:
-> 1443             self.converter = munits.registry.get_converter(x)
   1444 
   1445         if self.converter is None:

/home/peter/anaconda/lib/python2.7/site-packages/matplotlib/units.pyc in get_converter(self, x)
    139 
    140         if isinstance(x, np.ndarray) and x.size:
--> 141             xravel = x.ravel()
    142             try:
    143                 # pass the first value of x that is not masked back to

/home/peter/anaconda/lib/python2.7/site-packages/numpy/ma/core.pyc in ravel(self)
   4066         r._update_from(self)
   4067         if self._mask is not nomask:
-> 4068             r._mask = ndarray.ravel(self._mask).reshape(r.shape)
   4069         else:
   4070             r._mask = nomask

ValueError: total size of new array must be unchanged

In [ ]: