酷代码 AI
菜单

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

以下是一个满足你需求的Python程序,它使用`matplotlib`库来生成雷达图。代码会依次询问每个人的9个参数信息及其满分值,直到用户表示不再添加新的人。会将所有参数折合成100分后生成雷达图。 ```python import matplotlib.pyplot as plt import numpy as np # 询问第一个人9个参数信息及满分数值 params = [] max_params = [] print("请输入第一个人的9个参数信息及对应的满分数值:") for i in range(9): param = float(input(f"请输入第{i + 1}个参数的值:")) max_param = float(input(f"请输入第{i + 1}个参数的满分数值:")) params.append(param) max_params.append(max_param) all_params = [params] # 询问是否有更多人 more_people = input("是否有第二个人?(输入 '是' 或 '否'):") while more_people == "是": person_params = [] print("请输入下一个人的9个参数信息:") for i in range(9): param = float(input(f"请输入第{i + 1}个参数的值:")) person_params.append(param) all_params.append(person_params) more_people = input(f"是否有下一个人?(输入 '是' 或 '否'):") # 将所有参数折合成100分 scaled_params = [] for person in all_params: scaled_person = [score / max_score * 100 for score, max_score in zip(person, max_params)] scaled_params.append(scaled_person) # 生成雷达图 labels = [f'参数{i + 1}' for i in range(9)] angles = np.linspace(0, 2 * np.pi, 9, endpoint=False).tolist() angles += angles[:1] # 闭合图形 fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True)) for i, person in enumerate(scaled_params): person += person[:1] # 闭合图形 ax.plot(angles, person, label=f'第{i + 1}个人') ax.fill(angles, person, alpha=0.25) ax.set_theta_offset(np.pi / 2) ax.set_theta_direction(-1) ax.set_thetagrids(np.degrees(angles[:-1]), labels) ax.set_rlabel_position(0) plt.yticks([20, 40, 60, 80, 100], color="grey", size=12) plt.ylim(0, 100) plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1)) plt.show() ``` 代码说明: 1. 收集参数信息:程序首先询问第一个人的9个参数信息及其满分数值,并将这些信息存储在`params`和`max_params`列表中。 2. 询问是否有更多人:接着,程序会询问用户是否有第二个人。如果用户回答“是”,则会继续询问下一个人的9个参数信息,并将其添加到`all_params`二维列表中。这个过程会一直重复,直到用户回答“否”。 3. 参数折合:将每个人的参数按照满分值折合成100分,存储在`scaled_params`列表中。 4. 生成雷达图:使用`matplotlib`库生成雷达图,将每个人的参数绘制成不同的曲线,并填充颜色以区分不同的人。 运行这个程序后,你可以按照提示输入每个人的参数信息,最后会显示生成的雷达图。 [2026-01-11 21:07:42 | AI问答 | 873点数解答]

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