How to plot cumulative Gitlab group members using matplotlib
This is based on my previous post to find the group ID by group name.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime
import gitlab
def plot_cumulative_members(members):
# Convert date strings to datetime objects and sort
dates = sorted([datetime.strptime(member["access_granted_date"], '%Y-%m-%dT%H:%M:%S.%fZ') for member in members])
# Calculate cumulative count
cumulative_count = range(1, len(dates) + 1)
# Plotting
plt.figure(figsize=(10, 6))
plt.plot(dates, cumulative_count, marker='o')
plt.title('Cumulative Number of Users in GitLab Group Over Time')
plt.xlabel('Date')
plt.ylabel('Cumulative Number of Users')
plt.grid(True)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gca().xaxis.set_major_locator(mdates.YearLocator())
plt.gcf().autofmt_xdate() # Rotation
plt.show()
group_id = get_gitlab_group_id("Protectors of the Footprint Realm", 'glpat-...')
members = get_group_members(group_id, 'glpat-...')
with plt.xkcd():
plot_cumulative_members(members)