HemanM's picture
Update plot.py
b0fd119 verified
raw
history blame
879 Bytes
# plot.py
import matplotlib.pyplot as plt
import numpy as np
from io import BytesIO
from PIL import Image
def plot_radar_chart(config):
labels = list(config.keys())
values = list(config.values())
# Convert boolean to numeric for plotting
values = [1 if v is True else 0 if v is False else v for v in values]
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
values += values[:1]
angles += angles[:1]
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw={'polar': True})
ax.plot(angles, values, 'o-', linewidth=2)
ax.fill(angles, values, alpha=0.25)
ax.set_thetagrids(np.degrees(angles[:-1]), labels)
ax.set_title("Trait Radar Chart", fontsize=14)
ax.grid(True)
buf = BytesIO()
plt.tight_layout()
plt.savefig(buf, format="png")
plt.close(fig)
buf.seek(0)
return Image.open(buf)