|
|
@@ -26,6 +26,7 @@ import matplotlib.pyplot as plt
|
|
|
import matplotlib.dates as mdates
|
|
|
import argparse
|
|
|
import re
|
|
|
+import numpy as np
|
|
|
import cubehelix
|
|
|
|
|
|
|
|
|
@@ -42,13 +43,14 @@ parser.add_argument('--sendercolors', '-s', default=False, action='store',
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
plt.figure()
|
|
|
-plt.ylim([0, 24])
|
|
|
+plt.ylim([0, 27])
|
|
|
plt.ylabel('Hour')
|
|
|
plt.xlabel('Date')
|
|
|
plt.minorticks_on()
|
|
|
plt.title(args.title)
|
|
|
a = mailbox.mbox(args.mbox)
|
|
|
|
|
|
+pldata = {}
|
|
|
if args.sendercolors:
|
|
|
slist = args.sendercolors.split(',')
|
|
|
nsend = len(slist)
|
|
|
@@ -56,6 +58,9 @@ if args.sendercolors:
|
|
|
minSat=1, maxSat=2.5,
|
|
|
minLight=.3, maxLight=.8,
|
|
|
gamma=.9)
|
|
|
+ for item in slist:
|
|
|
+ pldata[item] = []
|
|
|
+pldata['unknown'] = []
|
|
|
|
|
|
for msg in a:
|
|
|
cid = None
|
|
|
@@ -73,20 +78,22 @@ for msg in a:
|
|
|
for search in enumerate(slist):
|
|
|
if re.search(search[1], msg['From'], re.IGNORECASE):
|
|
|
cid, label = search
|
|
|
+ pldata[label].append([z.date(), z.hour + z.minute/60.])
|
|
|
break
|
|
|
if cid is None:
|
|
|
- cid = nsend+1
|
|
|
- label = 'unknown'
|
|
|
- plt.plot_date(z.date(),
|
|
|
- z.hour + z.minute/60.,
|
|
|
- color=scolor(cid / (nsend + 1)),
|
|
|
- ls='.',
|
|
|
- # tz=z.tzname(),
|
|
|
- label=label,
|
|
|
- xdate=True)
|
|
|
+ pldata['unknown'].append([z.date(), z.hour + z.minute/60.])
|
|
|
+
|
|
|
+for plid in enumerate(pldata.keys()):
|
|
|
+ plt.plot_date(np.array(pldata[plid[1]])[:,0],
|
|
|
+ np.array(pldata[plid[1]])[:,1],
|
|
|
+ color=scolor(plid[0] / (nsend + 1)),
|
|
|
+ ls='.',
|
|
|
+ #tz=z.tzname(),
|
|
|
+ label=plid[1],
|
|
|
+ xdate=True)
|
|
|
|
|
|
if args.sendercolors:
|
|
|
- plt.legend()
|
|
|
+ plt.legend(title='Sender', loc='upper left', ncol=nsend + 1)
|
|
|
|
|
|
if args.plotfile:
|
|
|
plt.savefig(args.plotfile)
|