- added beer diagram, generatiors for test consumtions

This commit is contained in:
Bernhard Stampfer
2016-02-16 21:28:45 +01:00
parent 06df4d8daa
commit 63d49396b2
5 changed files with 127 additions and 9 deletions

View File

@@ -13,22 +13,35 @@ def plot_total(user = None):
# all_consumptions = list(10)
# for consumptions in all_consumptions: #todo fix
consumptions = np.zeros(len(dates))
# consumptions = np.zeros(len(dates))
allconsumptions = [[0 for x in range(len(dates))] for product in get_products()]
print allconsumptions
# allconsumptions = ()
# allconsumptions = allconsumptions + (np.zeros(len(dates)))
#print consumptions
consumed = get_consumed()
for consumption in consumed:
if consumption.prodnr == 1:
if user == None or consumption.consumer == user.id:
if consumption.time.date() > begin:
consumptions[(consumption.time.date() - begin).days - 1] += 1
if user == None or consumption.consumer == user.id:
i = 1
for consumptions in allconsumptions:
if consumption.prodnr == i:
if consumption.time.date() > begin:
consumptions[(consumption.time.date() - begin).days - 1] += 1
i += 1
plt.xkcd()
print allconsumptions
fig, ax = plt.subplots()
i=1
ax.plot(dates, consumptions, linestyle='-', marker='')
for consumptions in allconsumptions:
ax.plot(dates, consumptions, linestyle='-', marker='', label=get_product_by_id(i).name)
i += 1
ax.legend(loc=2,prop={'size':15})
# ax.axes.margins = 1 # x margin. See `axes.Axes.margins`
# ax.axes.ymargin = 1 # y margin See `axes.Axes.margins`
@@ -57,7 +70,7 @@ def plot_total(user = None):
xy=(30, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10))
plt.xlabel('Datum')
plt.ylabel('Halbe')
plt.ylabel('Konsumate')
if user == None:
tit = "Bierkonsum FET"
@@ -75,3 +88,65 @@ def plot_total(user = None):
fig.set_size_inches(4.8, 3.2)
plt.savefig(fill, dpi=400)
def plot_list(duration):
today = datetime.date.today()
begin = datetime.date.today() - datetime.timedelta(weeks=duration)
users = get_users()
#consumptions = [0 for user in users]
allconsumptions = [[0 for user in users] for product in get_products()]
consumed = get_consumed()
for consumption in consumed:
allconsumptions[consumption.prodnr-1][consumption.consumer-1] += 1
#print 'debug ------------------'
#print consumptions
#print '------------------------'
plt.xkcd()
fig, ax = plt.subplots()
colors = ['red','green','blue']
i=0
for consumptions in allconsumptions:
ax.barh(np.arange(len(consumptions)), consumptions, label=get_product_by_id(i+1).name, align='center', height=0.5, color=colors[i])
i+=1
names = list()
for user in users:
names.append(user.longname)
plt.yticks(np.arange(len(names)), names)
ax.legend(loc=2)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.yaxis.set_ticks_position('none')
ax.xaxis.set_ticks_position('none')
plt.subplots_adjust(left=0.2)
#plt.tick_params(which='minor', length=4)
#plt.tick_params(which='major', length=5)
#plt.annotate(
# 'THE DAY I REALIZED\nI COULD COOK BACON\nWHENEVER I WANTED',
# xy=(30, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10))
plt.xlabel('Konsumate')
#plt.ylabel('Konsumate')
plt.title("Bierliste")
#1024x768
fig.set_size_inches(10.24, 7.68)
plt.savefig('app/static/bierliste.png', dpi=100)
#800x600
fig.set_size_inches(12, 8)
plt.savefig('app/static/bierliste_small.png', dpi=72)