from datetime import date
import matplotlib.dates
from pylab import *
from numpy import array,sin,pi
t0 = date(1988,3,14).toordinal()
t1 = date.today().toordinal()
t = array(range((t1-10),(t1+10))) # range of 20 days
y = 100*[sin(2*pi*(t-t0)/23), # Physical
sin(2*pi*(t-t0)/28), # Emotional
sin(2*pi*(t-t0)/33)]; # Intellectual
# converting ordinals to date
label = []
for p in t:
label.append(date.fromordinal(p))
fig = figure()
ax = fig.gca()
plot(label,y[0],label,y[1],label,y[2])
# adding a legend
legend(['Physical', 'Emotional', 'Intellectual'])
# formatting the dates on the x axis
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%d/%b'))
show()
The resulting graph:Monday, July 4, 2011
How to plot biorhythm
The following script plot the biorhythm of a person born in 14/3/1988 in a range of 20 days.
Subscribe to:
Post Comments (Atom)

I find this fascinating...
ReplyDeleteThanks for sharing.
this code is not working it is giving this error:
ReplyDelete===================== RESTART: F:/python program/t.py ======================
Traceback (most recent call last):
File "F:/python program/t.py", line 2, in
import matplotlib.dates
ModuleNotFoundError: No module named 'matplotlib'
>>> how can i fix it
h, you have to install matplotblib first. This link can help: https://matplotlib.org/3.1.1/users/installing.html
Delete