data_to_viz
data_to_viz copied to clipboard
I would like to add swimmer plot
Here is the code for python, how do I get involved?
import pandas as pd import matplotlib.pyplot as plt
Sample data: Each row represents a subject with a unique ID, start and end time of the event
data = [ {"ID": "A", "start": 0, "end": 12}, {"ID": "B", "start": 2, "end": 14}, {"ID": "C", "start": 4, "end": 20}, {"ID": "D", "start": 6, "end": 22}, {"ID": "E", "start": 8, "end": 28}, ]
Convert the data into a pandas DataFrame
df = pd.DataFrame(data)
Function to create a swimmer plot
def create_swimmer_plot(df, subject_col, start_col, end_col): fig, ax = plt.subplots()
for i, row in df.iterrows():
subject = row[subject_col]
start = row[start_col]
end = row[end_col]
duration = end - start
ax.plot([start, end], [i, i], lw=2, marker='o', label=subject)
ax.set_yticks(range(len(df)))
ax.set_yticklabels(df[subject_col])
ax.set_xlabel("Time")
ax.set_ylabel("Subjects")
ax.legend()
plt.show()
Create the swimmer plot
create_swimmer_plot(df, "ID", "start", "end")