import matplotlib.pyplot as plt

x = []
y = []
sofar = float('inf')
with open("kmedoids_results.csv", "r") as file:
    for line in file:
        tab = line.split(",")
        if tab[0] == "k":
            continue
        k = int(tab[0])
        objective_cost = float(tab[1])
        if sofar < float('inf'):
            x.append(k)
            y.append(max(1, objective_cost / sofar))
        if objective_cost < sofar:
            sofar = objective_cost 

plt.plot(x, y)
plt.title("Suboptimality ratio", fontsize=14)
plt.xlabel("number of clusters", fontsize=12)
plt.ylabel("max(1, OPT[k] / min(OPT[1], ..., OPT[k-1]))", fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend()

plt.show()
