专业 C语言 Java Python C# Javascript 软件工程 95 96 85 63 91 计算机科学与技术 75 93 66 85 88 网络工程 86 76 96 93 67上述文字写入txt并根据上述内容用python绘制成绩雷达图
时间: 2024-12-18 14:20:33 浏览: 3
这段文字包含了五种编程语言和两个计算机领域的学分成绩,你想将它们写入一个`.txt`文件,并用Python画成雷达图。首先,你需要将这些数据存储在一个列表中,每组成绩作为列表的一个子列表。然后可以使用`pandas`库来处理数据并利用`matplotlib`库创建雷达图。以下是如何操作的步骤:
1. 将文本数据写入`.txt`文件:
```python
with open('scores.txt', 'w', newline='') as file:
for subject, scores in [('专业', [95, 96, 85, 63, 91]), ('软件工程', [95, 96, 85, 63, 91]),
('计算机科学与技术', [75, 93, 66, 85, 88]), ('网络工程', [86, 76, 96, 93, 67])]:
file.write(f"{subject}\t")
for score in scores:
file.write(str(score) + "\t")
file.write("\n")
```
2. 读取文本文件并绘制雷达图:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('scores.txt', sep='\t', header=None, names=['Subject', 'Scores'])
scores = data['Scores'].values.tolist()
# 指定类别数
num_subjects = len(data['Subject'].unique())
# 创建角度
angles = np.linspace(0, 2*np.pi, num_subjects+1)[0:-1]
# 绘制雷达图
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
ax.set_yticklabels([])
ax.set_xticks(angles)
ax.set_xticklabels(data['Subject'], rotation=-45, ha='left')
ax.plot(angles, scores, color='blue', linewidth=2)
plt.title('学科成绩雷达图')
plt.show()
```
这段代码会先将数据写入`scores.txt`文件,然后读取文件并根据数据创建雷达图。注意,为了使角度更易阅读,我们在设置x轴标签时进行了旋转。
阅读全文