On Thu, Aug 26, 2010 at 8:23 AM, Tinne De Laet <tinne.del...@mech.kuleuven.be> wrote: > On Thu, Aug 26, 2010 at 05:47, dcarroll <spanishcastlema...@gmail.com> wrote: >> >> I am trying make a plot that is in a loop and replots when new data is >> updated. >> >> #IN A LOOP >> >> fig = plt.figure(1,[10,10]) >> fig.clf >> >> prop = matplotlib.font_manager.FontProperties(size=8) >> >> xMin = dates[1] >> xMax = dates[-1] >> >> #temperature plot >> yMin = min(temperatureSQLData) >> yMax = max(temperatureSQLData) >> >> minTemperature = "Min = %.3f " % min(temperatureSQLData) + 'deg ' + 'C' >> minTemperatureIndex = temperatureSQLData.index(yMin) >> >> maxTemperature = "Max = %.3f " % max(temperatureSQLData) + 'deg ' + 'C' >> maxTemperatureIndex = temperatureSQLData.index(yMax) >> >> ax1 = fig.add_subplot(511) >> ax1.cla >> >> plt.hold(True) >> plt.plot(dates,temperatureSQLData,'r') >> plt.plot(dates[minTemperatureIndex],yMin,'ro',label=minTemperature) >> plt.plot(dates[maxTemperatureIndex],yMax,'bo',label=maxTemperature) >> plt.hold(False) >> >> plt.title("Water Conditions for the last 7 Days.") >> >> plt.xlim([xMin,xMax]) >> plt.ylim([yMin-1,yMax+1]) >> plt.ylabel('Temperature') >> ax1.legend(numpoints=1,prop=prop) >> >> dateFormat = mpl.dates.DateFormatter('%m/%d/%Y') >> ax1.xaxis.set_major_formatter(dateFormat) >> daysLocation = mpl.dates.DayLocator() >> ax1.xaxis.set_major_locator(daysLocation) >> hoursLocation = mpl.dates.HourLocator(interval=4) >> ax1.xaxis.set_minor_locator(hoursLocation) >> >> The problem is that the number of items in my legend grows with each >> iteration of the loop. Any help would be appreciated! > > > > You can select yourself what you want to include in the legend by > creating the legend as follows:
You can also leave out the label, or in a loop like this, conditionally assign a label of '_nolegend_', which suppresses adding it to the legend. This example shows how the different options work: import numpy as np import matplotlib.pyplot as plt x1,y1 = np.random.rand(2,10) x2,y2 = np.random.rand(2,10) x3,y3 = np.random.rand(2,10) x4,y4 = np.random.rand(2,10) plt.plot(x1, y1, label='first') plt.plot(x2, y2) # No label, so not included plt.plot(x3, y3, label='_nolegend_') # Actively suppress plt.plot(x4, y4, label='fourth') plt.legend() # Only shows lines 'first' and 'fourth' Ryan -- Ryan May Graduate Research Assistant School of Meteorology University of Oklahoma ------------------------------------------------------------------------------ Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users