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