酷代码 AI
菜单
服务商

Python实现:多人员9参数雷达图生成程序,自由添加人员并折算分数

```python import matplotlib.pyplot as plt import numpy as np # 初始化参数名称和满分数值 parameters = [] full_scores = [] for i in range(9): param = input(f"请输入第 {i + 1} 个参数的名称: ") full_score = float(input(f"请输入 {param} 的满分数值: ")) parameters.append(param) full_scores.append(full_score) # 初始化人员数据列表 people_data = [] n = 1 while True: person_data = [] print(f"请输入第 {n} 个人的参数信息:") for param, full_score in zip(parameters, full_scores): score = float(input(f"{param} 的得分: ")) # 折合成100分 normalized_score = (score / full_score) * 100 person_data.append(normalized_score) people_data.append(person_data) more_people = input("是否还有其他人? (输入 '是' 继续,输入其他结束): ") if more_people != '是': break n += 1 # 生成雷达图 angles = np.linspace(0, 2 * np.pi, len(parameters), endpoint=False) angles = np.concatenate((angles, [angles[0]])) fig = plt.figure() ax = fig.add_subplot(111, polar=True) for i, person in enumerate(people_data): person = np.concatenate((person, [person[0]])) ax.plot(angles, person, 'o-', linewidth=2, label=f'第 {i + 1} 个人') ax.fill(angles, person, alpha=0.25) ax.set_thetagrids(angles[:-1] * 180 / np.pi, parameters) plt.title('雷达图') plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1)) plt.show() ``` ######[AI问答 | 467点数解答 | 2026-01-11 21:10:04]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]