Using Data in our Report
Our code currently looks like this…
import ardi.util.mplreport
@mplreport.ardireport("Sample Report")
def CreateReport(report,args):
fig,ax = report.CreatePage(1)
report.Title()
thedata = report.FetchHistory("'Temperature' PROPERTYEX ALLPOINTS")
if report.FetchFailure():
report.Failed("\n".join(report.errors))
report.Save()
First, we need the values. These can be found as a Pandas dataframe in thedata.data.
For instance, we could draw each channel as a line chart using the following code…
frame = thedata.data
for colname in frame.columns:
ax.plot(frame[colname],label=colname)
This gives us a simple plot of every temperature in our ARDI system.
To make it prettier and easier to read, we can decorate our report with extra MatPlotLib code…
ax.margins(x=0)
ax.grid()
ax.legend()
ax.set_xlabel("Time")
ax.set_ylabel("Temperature (Deg C)")
The mplreport object also has a function called TimeAxis which creates a sensible time format on an axis given the range of the report.
For example, a report that covers a few hours will use HH:MM format, while reports covering a week will include day and hour information, but omit seconds.
report.TimeAxis(ax.xaxis)
We can now see the complete code of our simple report.