酷代码 AI
菜单

请生成一个雷达图程序,询问对方第一个人9个参数信息并填写其满分数值,然后询问是否有第二个人,如果有,询问第二个人的参数的参数(建立二维列表),然后询问是否有第三个人,重复,直至询问是否有第n个人是用户反馈说没有为止,将所有参数折合成100分后生成雷达图(每一行代码不使用前缀,)

```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() ``` [2026-01-11 21:10:04 | AI问答 | 467点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多