add files for project
This commit is contained in:
commit
5b1d3f5727
|
@ -0,0 +1,8 @@
|
|||
Run this in your weechat logs directory, substituting your irc username.
|
||||
Move the resulting file into the same directory as the plot script.
|
||||
|
||||
awk '$3=="tomasino" {print $1 " " $2 }' * >> z
|
||||
|
||||
Set up a virtual env and install packages from requirements.
|
||||
|
||||
Run 'plot.py' in that context.
|
|
@ -0,0 +1,71 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from datetime import datetime, timedelta, timezone
|
||||
import dateutil.parser
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.ticker as ticker
|
||||
import matplotlib.dates as mdates
|
||||
|
||||
renderHorizontal = True
|
||||
now = datetime.now()
|
||||
beginningOfTime = now-timedelta(days=6*365) # ignore tweets older than 5 years
|
||||
|
||||
days=[]
|
||||
times=[]
|
||||
|
||||
file = open('z')
|
||||
for line in file:
|
||||
# print(line)
|
||||
date = dateutil.parser.parse(line)
|
||||
# print(date)
|
||||
if beginningOfTime <= date <= now:
|
||||
timeNoDate = datetime(1970, 1, 1, date.hour, date.minute, date.second)
|
||||
dateNoTime = datetime(date.year, date.month, date.day)
|
||||
days.append(dateNoTime)
|
||||
times.append(timeNoDate)
|
||||
|
||||
print(max(days))
|
||||
|
||||
hoursMajorLocator = mdates.HourLocator(interval=6)
|
||||
hoursMinorLocator = mdates.HourLocator(interval=1)
|
||||
hoursMajorFormatter = mdates.DateFormatter('%H:%M')
|
||||
daysMajorLocator = mdates.YearLocator(base=1)
|
||||
daysMinorLocator = mdates.MonthLocator()
|
||||
daysMajorFormatter = mdates.DateFormatter('%Y')
|
||||
daysMinorFormatter = mdates.DateFormatter('%b')
|
||||
|
||||
if renderHorizontal:
|
||||
fig, ax = plt.subplots(figsize=((max(days)-min(days)).days / 200, 3))
|
||||
plt.scatter(days, times, s=1, linewidths=0, color='#1f77b4c0')
|
||||
plt.xlim(min(days), max(days))
|
||||
plt.ylim(0, 1)
|
||||
dateAxis = ax.xaxis
|
||||
hoursAxis = ax.yaxis
|
||||
daysMinorFormatter = mdates.DateFormatter('')
|
||||
else:
|
||||
fig, ax = plt.subplots(figsize=(3, (max(days)-min(days)).days / 200))
|
||||
plt.scatter(times, days, s=1, linewidths=0, color='#1f77b4c0')
|
||||
plt.ylim(min(days), max(days))
|
||||
plt.xlim(0, 1)
|
||||
dateAxis = ax.yaxis
|
||||
hoursAxis = ax.xaxis
|
||||
ax.tick_params(axis='y', which='minor', labelsize=5, color='#777')
|
||||
|
||||
# time goes downwards and to the right
|
||||
plt.gca().invert_yaxis()
|
||||
|
||||
hoursAxis.set_major_locator(hoursMajorLocator)
|
||||
hoursAxis.set_minor_locator(hoursMinorLocator)
|
||||
hoursAxis.set_major_formatter(hoursMajorFormatter)
|
||||
|
||||
dateAxis.set_major_locator(daysMajorLocator)
|
||||
dateAxis.set_minor_locator(daysMinorLocator)
|
||||
dateAxis.set_major_formatter(daysMajorFormatter)
|
||||
dateAxis.set_minor_formatter(daysMinorFormatter)
|
||||
|
||||
hoursAxis.set_label('Time of day')
|
||||
dateAxis.set_label('Date')
|
||||
plt.title(f"When does tomasino chat?")
|
||||
|
||||
plt.savefig('out.png', bbox_inches='tight', pad_inches=0.3, dpi=300)
|
||||
plt.savefig('out.svg', bbox_inches='tight', pad_inches=0.3)
|
|
@ -0,0 +1,8 @@
|
|||
cycler==0.10.0
|
||||
kiwisolver==1.3.1
|
||||
matplotlib==3.3.3
|
||||
numpy==1.19.4
|
||||
Pillow==8.0.1
|
||||
pyparsing==2.4.7
|
||||
python-dateutil==2.8.1
|
||||
six==1.15.0
|
Loading…
Reference in New Issue