Spaces:
Build error
Build error
| import matplotlib | |
| import matplotlib.pyplot as plt | |
| import seaborn as sns | |
| from plt_id import generate_image_key | |
| import os | |
| matplotlib.use("Agg") | |
| sns.set() | |
| UPLOAD_FOLDER = os.getcwd() + "/plots" | |
| os.makedirs(UPLOAD_FOLDER, exist_ok=True) | |
| def plot(clusterer, X) -> None: | |
| cluster_data = clusterer.to_dict(X)["clusters"] | |
| fig, ax = plt.subplots(figsize=(8, 6)) | |
| for cluster in cluster_data: | |
| sns.scatterplot( | |
| x=[point[0] for point in cluster["points"]], | |
| y=[point[1] for point in cluster["points"]], | |
| label=f"Cluster {cluster['cluster_id']}", | |
| ax=ax, | |
| ) | |
| ax.scatter( | |
| x=cluster["centroid"][0], | |
| y=cluster["centroid"][1], | |
| marker="x", | |
| s=100, | |
| linewidth=2, | |
| color="red", | |
| ) | |
| ax.legend() | |
| ax.set_title("K-means Clustering") | |
| ax.set_ylabel("Normalized Petal Length (cm)") | |
| ax.set_xlabel("Normalized Petal Length (cm)") | |
| image_key = generate_image_key() | |
| plot_filename = os.path.join(UPLOAD_FOLDER, f"{image_key}.png") | |
| fig.savefig(plot_filename, format="png") | |
| plt.close(fig) | |
| clusterer.plot_key = image_key | |