|
From:
<hec...@te...> - 2004-04-23 18:28:39
|
hi all,
i'm getting the following error when running this script.
if the script doesn't iterate over "tels" it runs fine...
it seems to do things right just once.
thanks in advance,
hector
################################################################################
ERROR
################################################################################
C:\Documents and Settings\villaf>python e:\src\python\ttp\ttp_plot.py
1082751605.0 : Fri Apr 23 12:20:05 2004 : ttp_plot start
Traceback (most recent call last):
File "e:\src\python\ttp\ttp_plot.py", line 56, in ?
plotting_date('traffic', 'tmp_calls0', 3)
File "e:\src\python\ttp\ttp_plot.py", line 39, in plotting_date
plot_date(datum, vals, PyDatetimeConverter())
File "C:\Python23\Lib\site-packages\matplotlib\matlab.py", line 1011,
in plot_date
try: lines = gca().plot_date(*args, **kwargs)
File "C:\Python23\Lib\site-packages\matplotlib\axes.py", line 1198,
in plot_date
locator = MinuteLocator(1)
File "C:\Python23\Lib\site-packages\matplotlib\ticker.py", line 720,
in __init__
MultipleLocator.__init__(self, base*SEC_PER_MIN)
NameError: global name 'SEC_PER_MIN' is not defined
################################################################################
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 = ConfigParser.ConfigParser()
config.readfp(open('e:\\src\\python\\ttp\\ttp.conf', 'r'))
loc_host = config.get('DATABASE', 'loc_host')
loc_user = config.get('DATABASE', 'loc_user')
loc_passwd = config.get('DATABASE', 'loc_passwd')
loc_db = config.get('DATABASE', 'loc_db')
loc_db = MySQLdb.connect(host = loc_host, user = loc_user, passwd =
loc_passwd, db = loc_db)
cursor = loc_db.cursor()
def plotting_date(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
min FROM %s.%s GROUP BY 1,2" % (db,dig,db,table))
cursor.execute("SELECT DISTINCT tel FROM %s.tmp" % (db))
tels = cursor.fetchall()
for tel in tels:
cursor.execute("SELECT fecha, min FROM %s.tmp WHERE tel = '%s'"
% (db,tel[0]))
data = cursor.fetchall()
datum = [datetime.datetime(int(q[0][0:4]), int(q[0][4:6]),
int(q[0][6:8]), 0, 0) for q in data]
vals = [q[1] for q in data]
ax = subplot(1,1,1)
plot_date(datum, vals, PyDatetimeConverter())
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 = ax.get_xticklabels()
set(labels, 'rotation', 'vertical')
grid(True)
savefig("c:\\tmp\\%s_%s_test" % (tel[0],table))
# --- main -- #
if __name__ == '__main__':
print time.mktime(time.localtime()), ': \t', time.asctime(), ':
\t', 'ttp_plot start'
plotting_date('traffic', 'tmp_calls0', 3)
print time.mktime(time.localtime()), ': \t', time.asctime(), ':
\t', 'ttp_plot end'
|