From:
<hec...@te...> - 2004-04-26 15:56:09
|
John Hunter wrote: >>>>>>"H=E9ctor" =3D=3D H=E9ctor Villafuerte D <hec...@te...= m.gt> writes: >>>>>> =20 >>>>>> > > H=E9ctor> 720, in __init__ MultipleLocator.__init__(self, > H=E9ctor> base*SEC_PER_MIN) NameError: global name 'SEC_PER_MIN' is > H=E9ctor> not defined > >This is a bug in ticker that will be fixed in the next bugfix >release. If you want to fix it yourself now, edit >matplotlib/ticker.py and add SEC_PER_MIN to the list of things >imported from the dates module. Ie, > >from dates import EpochConverter, SEC_PER_HOUR, SEC_PER_DAY, SEC_PER_WEE= K, \ > SEC_PER_MIN > > =20 > Thanks John, everything works right now, except for fact that I need to "clear" it on=20 every iteration ... and the line where I try to clear the previous figure ("ax.clear()") is=20 giving me troubles. Thanks in advance! ###################################################################### ERROR ###################################################################### C:\Documents and Settings\villaf>python e:\src\python\ttp\ttp_plot.py 1083001763.0 : Mon Apr 26 09:49:23 2004 : ttp_plot start Traceback (most recent call last): File "e:\src\python\ttp\ttp_plot.py", line 58, in ? get_data('traffic', 'tmp_calls0', 3) File "e:\src\python\ttp\ttp_plot.py", line 39, in get_data plot_date(datum, vals, PyDatetimeConverter(), 'b-') File "C:\Python23\Lib\site-packages\matplotlib\matlab.py", line 1011,=20 in plot_date try: lines =3D gca().plot_date(*args, **kwargs) File "C:\Python23\Lib\site-packages\matplotlib\axes.py", line 1172, in=20 plot_date self.plot(e, y, fmt, **kwargs) File "C:\Python23\Lib\site-packages\matplotlib\axes.py", line 1156, in=20 plot self.xaxis.autoscale_view() File "C:\Python23\Lib\site-packages\matplotlib\axis.py", line 405, in=20 autoscale_view self._majorTicker.locator.autoscale() File "C:\Python23\lib\site-packages\matplotlib\ticker.py", line 567,=20 in autoscale self._locator =3D self.get_locator(d) File "C:\Python23\lib\site-packages\matplotlib\ticker.py", line 573,=20 in get_locator ld =3D log10(d) OverflowError: math range error ###################################################################### SCRIPT ###################################################################### import time, ConfigParser, MySQLdb import datetime import matplotlib matplotlib.use('Agg') from matplotlib.matlab import * from matplotlib.dates import PyDatetimeConverter, MONDAY from matplotlib.ticker import WeekdayLocator, DayLocator, DateFormatter config =3D ConfigParser.ConfigParser() config.readfp(open('e:\\src\\python\\ttp\\ttp.conf', 'r')) loc_host =3D config.get('DATABASE', 'loc_host') loc_user =3D config.get('DATABASE', 'loc_user') loc_passwd =3D config.get('DATABASE', 'loc_passwd') loc_db =3D config.get('DATABASE', 'loc_db') loc_db =3D MySQLdb.connect(host =3D loc_host, user =3D loc_user, passwd =3D= =20 loc_passwd, db =3D loc_db) cursor =3D loc_db.cursor() def get_data(db, table, dig): cursor.execute("DROP TABLE IF EXISTS %s.tmp" % (db)) cursor.execute("CREATE TABLE %s.tmp " "SELECT fecha, mid(tel,1,%d) as tel, sum(minutos) as=20 min FROM %s.%s GROUP BY 1,2" % (db,dig,db,table)) cursor.execute("SELECT DISTINCT tel FROM %s.tmp" % (db)) tels =3D cursor.fetchall() for tel in tels: cursor.execute("SELECT fecha, min FROM %s.tmp WHERE tel =3D '%s'"= =20 % (db,tel[0])) data =3D cursor.fetchall() datum =3D [datetime.datetime(int(q[0][0:4]), int(q[0][4:6]),=20 int(q[0][6:8]), 0, 0) for q in data] vals =3D [q[1] for q in data] ax =3D subplot(1,1,1) plot_date(datum, vals, PyDatetimeConverter(), 'b-') ax.xaxis.set_major_locator(WeekdayLocator(MONDAY)) ax.xaxis.set_major_formatter(DateFormatter('%b %d')) ax.xaxis.set_minor_locator(DayLocator()) ax.xaxis.autoscale_view() title('TEST') ylabel('test') labels =3D ax.get_xticklabels() set(labels, 'rotation', 'vertical') grid(True) savefig("c:\\tmp\\%s_%s" % (tel[0],table)) ax.clear() # --- main -- # if __name__ =3D=3D '__main__': print time.mktime(time.localtime()), ': \t', time.asctime(), ': \t',=20 'ttp_plot start' get_data('traffic', 'tmp_calls0', 3) print time.mktime(time.localtime()), ': \t', time.asctime(), ': \t',=20 'ttp_plot end' |