import numpy as np
import matplotlib.pyplot as plt

# Dimensions
labels = [
    "Truth",
    "Indeterminacy",
    "Falsity",
    "Bipolarity",
    "Phase"
]

num_vars = len(labels)
angles = np.linspace(0, 2*np.pi, num_vars, endpoint=False).tolist()
angles += angles[:1]

# Model capability vectors (0 = not supported, 1 = supported)
models = {
    "Fuzzy":              [1, 0, 0, 0, 0],
    "Intuitionistic":     [1, 0, 1, 0, 0],
    "Neutrosophic":       [1, 1, 1, 0, 0],
    "Bipolar Neutros.":   [1, 1, 1, 1, 0],
    "Complex Neutros.":   [1, 1, 1, 0, 1],
    "BCNM":               [1, 1, 1, 1, 1],
}

plt.figure(figsize=(7,7))
ax = plt.subplot(111, polar=True)

for model, values in models.items():
    values = values + values[:1]
    ax.plot(angles, values, linewidth=2, label=model)
    ax.fill(angles, values, alpha=0.08)

ax.set_thetagrids(np.degrees(angles[:-1]), labels)
ax.set_ylim(0, 1.2)
ax.set_title("Comparative Capability Spectrum of Matrix-Based Decision Models", pad=20)
ax.legend(loc="upper right", bbox_to_anchor=(1.35, 1.1))

plt.tight_layout()
plt.show()