title: How to get a graph for stock market analysis?
body: <p>I updated the code and it now provides the graph,  however after giving me the graph it produces the following error messages.</p>
  
  <blockquote>
    <p>Warning (from warnings module):
      File "C:\Python27\lib\site-packages\matplotlib\collections.py", line 590
        if self._edgecolors == str('face'):
    FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison </p>
  </blockquote>
  
  <pre><code>import urllib2
  import time
  import datetime
  import numpy as np
  import matplotlib.pyplot as plt
  import matplotlib.ticker as mticker
  import matplotlib.dates as mdates
  from matplotlib.finance import candlestick_ochl 
  import matplotlib
  import pylab
  matplotlib.rcParams.update({'font.size': 9})
  
  
  
  def rsiFunc(prices, n=14):
      deltas = np.diff(prices)
      seed = deltas[:n+1]
      up = seed[seed&gt;=0].sum()/n
      down = -seed[seed&lt;0].sum()/n
      rs = up/down
      rsi = np.zeros_like(prices)
      rsi[:n] = 100. - 100./(1.+rs)
  
      for i in range(n, len(prices)):
          delta = deltas[i-1] # cause the diff is 1 shorter
  
          if delta&gt;0:
              upval = delta
              downval = 0.
          else:
              upval = 0.
              downval = -delta
  
          up = (up*(n-1) + upval)/n
          down = (down*(n-1) + downval)/n
  
          rs = up/down
          rsi[i] = 100. - 100./(1.+rs)
  
      return rsi
  
  def movingaverage(values,window):
      weigths = np.repeat(1.0, window)/window
      smas = np.convolve(values, weigths, 'valid')
      return smas # as a numpy array
  
  def ExpMovingAverage(values, window):
      weights = np.exp(np.linspace(-1., 0., window))
      weights /= weights.sum()
      a =  np.convolve(values, weights, mode='full')[:len(values)]
      a[:window] = a[window]
      return a
  
  
  def computeMACD(x, slow=26, fast=12):
      """
      compute the MACD (Moving Average Convergence/Divergence) using a fast and slow exponential moving avg'
      return value is emaslow, emafast, macd which are len(x) arrays
      """
      emaslow = ExpMovingAverage(x, slow)
      emafast = ExpMovingAverage(x, fast)
      return emaslow, emafast, emafast - emaslow
  
  
  def graphData(stock,MA1,MA2):
      '''
          Use this to dynamically pull a stock:
      '''
      try:
          print 'Currently Pulling',stock
          print str(datetime.datetime.fromtimestamp(int(time.time())).strftime('%Y-%m-%d %H:%M:%S'))
          #Keep in mind this is close high low open data from Yahoo
          urlToVisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+stock+'/chartdata;type=quote;range=10y/csv'
          stockFile =[]
          try:
              sourceCode = urllib2.urlopen(urlToVisit).read()
              splitSource = sourceCode.split('\n')
              for eachLine in splitSource:
                  splitLine = eachLine.split(',')
                  if len(splitLine)==6:
                      if 'values' not in eachLine:
                          stockFile.append(eachLine)
          except Exception, e:
              print str(e), 'failed to organize pulled data.'
      except Exception,e:
          print str(e), 'failed to pull pricing data'
      try:   
          date, closep, highp, lowp, openp, volume = np.loadtxt(stockFile,delimiter=',', unpack=True,
                                                                converters={ 0: mdates.strpdate2num('%Y%m%d')})
          x = 0
          y = len(date)
          newAr = []
          while x &lt; y:
              appendLine = date[x],openp[x],closep[x],highp[x],lowp[x],volume[x]
              newAr.append(appendLine)
              x+=1
  
          Av1 = movingaverage(closep, MA1)
          Av2 = movingaverage(closep, MA2)
  
          SP = len(date[MA2-1:])
  
          fig = plt.figure(facecolor='#07000d')
  
          ax1 = plt.subplot2grid((6,4), (1,0), rowspan=4, colspan=4, axisbg='#07000d')
          candlestick_ochl(ax1, newAr[-SP:], width=.6, colorup='#53c156', colordown='#ff1717')#width=.6, plot_day_summary_ohlc
  
          Label1 = str(MA1)+' SMA'
          Label2 = str(MA2)+' SMA'
  
          ax1.plot(date[-SP:],Av1[-SP:],'#e1edf9',label=Label1, linewidth=1.5)
          ax1.plot(date[-SP:],Av2[-SP:],'#4ee6fd',label=Label2, linewidth=1.5)
  
          ax1.grid(True, color='w')
          ax1.xaxis.set_major_locator(mticker.MaxNLocator(10))
          ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
          ax1.yaxis.label.set_color("w")
          ax1.spines['bottom'].set_color("#5998ff")
          ax1.spines['top'].set_color("#5998ff")
          ax1.spines['left'].set_color("#5998ff")
          ax1.spines['right'].set_color("#5998ff")
          ax1.tick_params(axis='y', colors='w')
          plt.gca().yaxis.set_major_locator(mticker.MaxNLocator(prune='upper')) #gca()
          ax1.tick_params(axis='x', colors='w')
          plt.ylabel('Stock price and Volume')
  
          maLeg = plt.legend(loc=9, ncol=2, prop={'size':7},
                     fancybox=True, borderaxespad=0.)
          maLeg.get_frame().set_alpha(0.4)
          textEd = plt.gca().get_legend().get_texts()#pylab.gca() changed to plt.gca()
          plt.setp(textEd[0:5], color = 'w')#changed pylab.setp to plt.setp
  
          volumeMin = 0
  
          ax0 = plt.subplot2grid((6,4), (0,0), sharex=ax1, rowspan=1, colspan=4, axisbg='#07000d')
          rsi = rsiFunc(closep)
          rsiCol = '#c1f9f7'
          posCol = '#386d13'
          negCol = '#8f2020'
  
          ax0.plot(date[-SP:], rsi[-SP:], rsiCol, linewidth=1.5)
          ax0.axhline(70, color=negCol)
          ax0.axhline(30, color=posCol)
          ax0.fill_between(date[-SP:], rsi[-SP:], 70, where=(rsi[-SP:]&gt;=70), facecolor=negCol, edgecolor=negCol, alpha=0.5)
          ax0.fill_between(date[-SP:], rsi[-SP:], 30, where=(rsi[-SP:]&lt;=30), facecolor=posCol, edgecolor=posCol, alpha=0.5)
          ax0.set_yticks([30,70])
          ax0.yaxis.label.set_color("w")
          ax0.spines['bottom'].set_color("#5998ff")
          ax0.spines['top'].set_color("#5998ff")
          ax0.spines['left'].set_color("#5998ff")
          ax0.spines['right'].set_color("#5998ff")
          ax0.tick_params(axis='y', colors='w')
          ax0.tick_params(axis='x', colors='w')
          plt.ylabel('RSI')
  
          ax1v = ax1.twinx()
          ax1v.fill_between(date[-SP:],volumeMin, volume[-SP:], facecolor='#00ffe8', alpha=.4)
          ax1v.axes.yaxis.set_ticklabels([])
          ax1v.grid(False)
          ax1v.set_ylim(0, 3*volume.max())
          ax1v.spines['bottom'].set_color("#5998ff")
          ax1v.spines['top'].set_color("#5998ff")
          ax1v.spines['left'].set_color("#5998ff")
          ax1v.spines['right'].set_color("#5998ff")
          ax1v.tick_params(axis='x', colors='w')
          ax1v.tick_params(axis='y', colors='w')
  
  
          ax2 = plt.subplot2grid((6,4), (5,0), sharex=ax1, rowspan=1, colspan=4, axisbg='#07000d')
  
  
  
          # START NEW INDICATOR CODE #
  
  
  
          # END NEW INDICATOR CODE #
  
  
  
  
          plt.gca().yaxis.set_major_locator(mticker.MaxNLocator(prune='upper'))
          ax2.spines['bottom'].set_color("#5998ff")
          ax2.spines['top'].set_color("#5998ff")
          ax2.spines['left'].set_color("#5998ff")
          ax2.spines['right'].set_color("#5998ff")
          ax2.tick_params(axis='x', colors='w')
          ax2.tick_params(axis='y', colors='w')
          ax2.yaxis.set_major_locator(mticker.MaxNLocator(nbins=5, prune='upper'))
  
  
  
  
  
          for label in ax2.xaxis.get_ticklabels():
              label.set_rotation(45)
  
          plt.suptitle(stock.upper(),color='w')
  
          plt.setp(ax0.get_xticklabels(), visible=False)
          plt.setp(ax1.get_xticklabels(), visible=False)
  
          '''ax1.annotate('Big news!',(date[510],Av1[510]),
              xytext=(0.8, 0.9), textcoords='axes fraction',
              arrowprops=dict(facecolor='white', shrink=0.05),
              fontsize=14, color = 'w',
              horizontalalignment='right', verticalalignment='bottom')'''
  
          plt.subplots_adjust(left=.09, bottom=.14, right=.94, top=.95, wspace=.20, hspace=0)
          plt.show()
          fig.savefig('example.png',facecolor=fig.get_facecolor())
  
      except Exception,e:
          print 'main loop',str(e)
  
  while True:
      stock = raw_input('Stock to plot: ')
      graphData(stock,10,50)
  </code></pre>