How to plot a data including date and time?
On 14 Aug 2019, amirrezaheidarysbu at gmail.com wrote
(in article<23d45668-fa47-4640-832a-5a5c64600b95 at googlegroups.com>):
> On Tuesday, August 13, 2019 at 11:47:28 PM UTC+2, amirrezah... at gmail.com
> > I have a .csv file, in first column I have date and hour, and in the second
> > column I have energy use data. How can I make a bar chart with Date and
> > time as the x axis and the energy use as the Y axis?
> > Thanks
> Thank you for your guidance. I am already using matplotlib but I do not know
> how to import a column of date and time and to use it properly as the x axis.
> can you tell me the code?
If you don't mind using a steam hammer to crack a nut, it is amazing what you
can do with pandas using just the "10 minute guide" chapter in the (shudder)
10,000 page manual. The chief benefit is how thoroughly it protects you from
Numpy and Matplotlib.
I solved a similar problem (tracking home blood pressure with exponentially
weighted means) up and running in half a day from a completely cold start.
The graphing bit is a delight. However, if you want to do something that the
10 minute guide does not cover, you can lose a man-month without really
trying. Pandas is a beautiful monster!
Here's the relevant bit
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pytz import common_timezones, all_timezones
#preparing the csv from a text file elided as irrelevant
#except that the .csv headings have to be Date Systolic Diastolic for this to
work as designed
# Plot the intermediate file with pandas after adding exponentially weighted
df = pd.read_csv('Blood pressure.csv')
df['Date'] = pd.to_datetime(df['Date'])
df['Syst EWM'] = df['Systolic'].ewm(span=200).mean()
df['Diast EWM'] = df['Diastolic'].ewm(span=200).mean()
print(df.tail(60)) #a debug line I left in to watch the EWMs sink to more
plt.suptitle("Home BP record")
That should give you a start
To de-mung my e-mail address:- fsnospam$elliott$$ PGP Fingerprint: 1A96 3CF7
637F 896B C810 E199 7E5C A9E4 8E59 E248