import numpy as np
import matplotlib.pyplot as plt

# Models (excluding BCNM, which is reference)
models = [
    "Fuzzy",
    "Intuitionistic Fuzzy",
    "Neutrosophic",
    "Bipolar Neutrosophic",
    "Complex Neutrosophic"
]

# Rankings
rankings = {
    "Fuzzy": [2, 1, 3],
    "Intuitionistic Fuzzy": [3, 1, 2],
    "Neutrosophic": [3, 1, 2],
    "Bipolar Neutrosophic": [1, 2, 3],
    "Complex Neutrosophic": [2, 3, 1],
}

# BCNM reference ranking
bcnm = np.array([1, 3, 2])

# Compute deviations
deviations = np.array([np.array(rankings[m]) - bcnm for m in models])

# Plot
plt.figure(figsize=(9,5))

for i, alt in enumerate(["A₁", "A₂", "A₃"]):
    plt.plot(models, deviations[:, i], marker="o", linewidth=2, label=alt)

plt.axhline(0, linestyle="--", linewidth=1)
plt.ylabel("Ranking Deviation from BCNM")
plt.xlabel("Decision Models")
plt.title("Ranking Deviation Analysis w.r.t. Proposed BCNM (Scenario–2)")
plt.legend()
plt.grid(True, linestyle="--", alpha=0.6)

plt.tight_layout()
plt.show()