Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. import plotly
  2. import plotly.plotly as py
  3. import plotly.graph_objs as go
  4. import random
  5. import datetime
  6.  
  7. # setup the date series
  8. # we need day of week (dow) and if it is a weekday (wday) too
  9. sdate = datetime.datetime.strptime("2016-01-01", '%Y-%m-%d').date()
  10. edate = datetime.datetime.strptime("2016-02-28", '%Y-%m-%d').date()
  11. ndays = (edate - sdate).days + 1
  12. dates = [sdate + datetime.timedelta(days=x) for x in range(ndays)]
  13. dow = [(x+5) % 7 for x in range(ndays)]
  14. wday = [1 if dow[x]<=4 else 0 for x in range(ndays)]
  15.  
  16. # now some fake power consumption
  17. # weekdays will have 150 power consumption on average
  18. # weekend will have 100 power consumption on average
  19. # and we add about 20 in random noise to both
  20. pwval = [ 90+wday[x]*50 + random.randrange(0,20) for x in range(ndays)]
  21. # limits - higher limits during the week (150) compared to the weekend (100)
  22. pwlim = [150 if dow[x]<=4 else 100 for x in range(ndays)]
  23.  
  24. # now the colors
  25. clrred = 'rgb(222,0,0)'
  26. clrgrn = 'rgb(0,222,0)'
  27. clrs = [clrred if pwval[x]>=pwlim[x] else clrgrn for x in range(ndays)]
  28.  
  29. # first trace (layer) is our power consumption bar
  30. trace0 = go.Bar(
  31. x=dates,
  32. y=pwval,
  33. name="Power Consumption",
  34. marker=dict(color=clrs)
  35. )
  36. # second trace is our line showing the power limit
  37. trace1 = go.Scatter(
  38. x=dates,
  39. y=pwlim,
  40. name = 'Power Limit',
  41. line = dict(
  42. color = ('rgb(0,0,222)'),
  43. width = 2,
  44. dash = 'dot')
  45. )
  46. data = [trace0,trace1]
  47. layout = go.Layout( title='Power')
  48. fig = go.Figure(data=data, layout=layout)
  49. py.iplot(fig, filename='power-limits-1')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement