酷代码 AI
菜单
服务商

请生成一个雷达图程序,询问对方9个参数信息并填写其满分数值,将其折合成100分后生成雷达图

以下是一个使用Python实现的程序,它会询问用户9个参数信息及其满分数值,将用户输入的分数折合成100分后生成雷达图。 ```python import matplotlib.pyplot as plt import numpy as np # 询问用户输入9个参数信息及其分数和满分 parameters = [] scores = [] full_scores = [] for i in range(9): param = input(f"请输入第 {i + 1} 个参数的名称: ") score = float(input(f"请输入 {param} 的实际得分: ")) full_score = float(input(f"请输入 {param} 的满分数值: ")) parameters.append(param) scores.append(score) full_scores.append(full_score) # 将分数折合成100分 normalized_scores = [score / full_score * 100 for score, full_score in zip(scores, full_scores)] # 生成雷达图 angles = np.linspace(0, 2 * np.pi, len(parameters), endpoint=False) # 使雷达图封闭 normalized_scores = np.concatenate((normalized_scores, [normalized_scores[0]])) angles = np.concatenate((angles, [angles[0]])) parameters = np.concatenate((parameters, [parameters[0]])) fig = plt.figure() ax = fig.add_subplot(111, polar=True) ax.plot(angles, normalized_scores, 'o-', linewidth=2) ax.fill(angles, normalized_scores, alpha=0.25) ax.set_thetagrids(angles * 180 / np.pi, parameters) ax.set_title("雷达图") ax.grid(True) plt.show() ``` 代码说明: 1. 输入部分:程序会循环9次,每次询问用户一个参数的名称、实际得分和满分数值,并将这些信息存储在相应的列表中。 2. 分数归一化:将用户输入的实际得分按照满分数值折合成100分。 3. 雷达图绘制:使用`matplotlib`库绘制雷达图。首先,计算每个参数对应的角度,然后将分数和参数名称数组封闭起来,确保雷达图是一个封闭的图形。绘制雷达图并添加和网格。 运行代码: 将上述代码保存为一个Python文件(例如`radar_chart.py`),然后在命令行中运行: ```sh python radar_chart.py ``` 按照提示输入参数信息和分数,程序将自动生成雷达图。 [2026-01-11 21:02:19 | AI问答 | 585点数解答]

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