import matplotlib.pyplot as plt | |
import pandas as pd | |
import logging | |
logger = logging.getLogger(__name__) | |
def plot_usage(df): | |
"""Plot daily usage trends from log data.""" | |
logger.info("Generating usage plot...") | |
try: | |
df["timestamp"] = pd.to_datetime(df["timestamp"]) | |
daily_usage = df.groupby([df["timestamp"].dt.date, "equipment"]).size().unstack(fill_value=0) | |
fig, ax = plt.subplots(figsize=(10, 6)) | |
daily_usage.plot(kind="line", ax=ax) | |
ax.set_title("Daily Usage Trends") | |
ax.set_xlabel("Date") | |
ax.set_ylabel("Usage Count") | |
ax.legend(title="Equipment") | |
plt.tight_layout() | |
logger.info("Usage plot generated successfully.") | |
return fig | |
except Exception as e: | |
logger.error(f"Failed to generate usage plot: {e}") | |
raise |