Hi ,

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:


**************************************
legendEntries=[]             # list of plots that are going to be in
the legend
legendText=[]   # list of text messages for the legend

thisPlot = plot(x,y,'b*') # a plot command

legendEntries.append(thisPlot) # only do this for the plots you want
to add to the legend
legendText.append("legend text")    # only this for the plots you want
to add to the legend

 lgd = legend(legendEntries,legendText,numpoints=1,prop=props,loc='upper
right') # example of how to draw the legend

**************************************

so you could clean the legendEntries and legendText at the beginning
of every loop by calling
legendEntries=[]
legendText=[]

Or if the legend is every time the same you can only create it in the
first iteration of the loop and then do not change the legendEntries
or legendtext any more.

Tinne

------------------------------------------------------------------------------
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

Reply via email to