File size: 1,942 Bytes
fd591d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import matplotlib.pyplot as plt
import numpy as np

def draw_lifecycle_diagram():
    # Labels and colors for the lifecycle phases
    labels = [
        "1. Gathering Data", 
        "2. Data Preparation", 
        "3. Data Wrangling", 
        "4. Analyze Data", 
        "5. Train Model", 
        "6. Test Model", 
        "7. Deployment"
    ]
    colors = [
        "#3CB371", "#8FBC8F", "#00CED1", "#1E90FF", 
        "#6A5ACD", "#FF8C00", "#DC143C"
    ]

    # Create a figure and axis with equal aspect ratio
    fig, ax = plt.subplots(figsize=(9, 9), subplot_kw={"aspect": "equal"})
    size = 0.3  # Width of the pie sections

    # Create pie sections for the lifecycle phases
    wedges, _ = ax.pie(
        [1] * len(labels), 
        colors=colors, 
        radius=1, 
        startangle=90, 
        wedgeprops=dict(width=size, edgecolor='w')
    )

    # Add text labels around the circle
    for i, wedge in enumerate(wedges):
        # Calculate the angle for the label placement
        angle = (wedge.theta2 - wedge.theta1) / 2.0 + wedge.theta1
        x = np.cos(np.deg2rad(angle))
        y = np.sin(np.deg2rad(angle))

        # Add label text
        ax.text(
            1.2 * x, 1.2 * y, labels[i],
            ha="center", va="center", fontsize=10, weight="bold",
            bbox=dict(boxstyle="round,pad=0.3", facecolor=colors[i], edgecolor="w")
        )

    # Add center text with a descriptive title
    ax.text(
        0, 0, "Machine Learning\nLifecycle", 
        ha="center", va="center", fontsize=16, weight="bold", color="black",
        bbox=dict(boxstyle="round,pad=0.5", facecolor="white", edgecolor="black")
    )

    # Clean up the diagram style
    ax.set(aspect="equal", xticks=[], yticks=[], title="Machine Learning Lifecycle")
    return fig

# Save the diagram or display it in Streamlit
if __name__ == "__main__":
    # Display the diagram
    fig = draw_lifecycle_diagram()
    plt.show()