labours.py 929 B

123456789101112131415161718192021222324252627282930
  1. from datetime import datetime, timedelta
  2. import sys
  3. import matplotlib.pyplot as pyplot
  4. import numpy
  5. import pandas
  6. import seaborn # to get nice colors, he-he
  7. def main():
  8. matrix = []
  9. start, granularity, sampling = input().split()
  10. start = datetime.fromtimestamp(int(start))
  11. granularity = int(granularity)
  12. sampling = int(sampling)
  13. for line in sys.stdin.read().split("\n")[:-1]:
  14. matrix.append(numpy.fromstring(line, dtype=int, sep=" "))
  15. matrix = numpy.array(matrix).T
  16. pyplot.stackplot(
  17. pandas.date_range(start, periods=matrix.shape[1], freq="%dD" % sampling),
  18. matrix,
  19. labels=["%s - %s" % ((start + timedelta(days=i * granularity)).date(),
  20. (start + timedelta(days=(i + 1) * granularity)).date())
  21. for i in range(matrix.shape[0])])
  22. pyplot.legend(loc=2)
  23. pyplot.show()
  24. if __name__ == "__main__":
  25. sys.exit(main())