给出用python绘制成绩雷达图的代码
时间: 2023-06-04 14:06:33 浏览: 118
以下是使用Python和Matplotlib绘制成绩雷达图的样例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义成绩
labels = np.array(['语文', '数学', '英语', '物理', '化学'])
data = np.array([70, 85, 90, 80, 75])
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
# 设置雷达图的坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
ax.plot(angles, data, 'o-', linewidth=2)
ax.fill(angles, data, alpha=0.25)
ax.set_thetagrids(angles * 180/np.pi, labels)
ax.set_title('成绩雷达图', fontsize=14)
plt.show()
```
注:以上代码参考自CSDN用户lampsonWong的博客。
相关问题
用python绘制成绩雷达图
好的,Python有很多绘图库可以用来绘制雷达图,比如matplotlib和plotly。这里我以matplotlib为例,演示如何读取附件中的文件,并绘制成绩雷达图。
首先,假设附件中的文件是一个CSV格式的文件,包含学生姓名和成绩。我们可以使用Python内置的csv模块来读取该文件。以下是读取CSV文件并将数据存储到列表中的示例代码:
```python
import csv
scores = []
with open('score.csv') as f:
reader = csv.reader(f)
for row in reader:
scores.append(row)
```
接下来,我们需要将成绩数据转换成适合绘制雷达图的格式。雷达图需要将数据转换成极坐标系下的坐标点,因此我们需要计算每个学生的各个成绩对应的坐标点。以下是将成绩数据转换成坐标点的示例代码:
```python
import numpy as np
# 将学科名称和对应的角度转换成字典
subject_angles = {'Chinese': 90, 'Math': 30, 'English': 330, 'Physics': 270, 'Chemistry': 210, 'Biology': 150}
# 计算每个学生各个成绩对应的坐标点
data = []
for s in scores:
name = s[0]
values = [float(x) for x in s[1:]]
angles = [subject_angles[k] for k in subject_angles.keys()]
values += values[:1]
angles += angles[:1]
data.append((name, angles, values))
```
最后,我们使用matplotlib库来绘制雷达图。以下是绘制雷达图的示例代码:
```python
import matplotlib.pyplot as plt
# 设置雷达图的坐标轴标签和范围
labels = list(subject_angles.keys())
angles = list(subject_angles.values())
angles += angles[:1]
plt.polar(angles, labels=labels, color='k', linewidth=1)
# 绘制每个学生的雷达图
for d in data:
name, angles, values = d
values += values[:1]
ax = plt.subplot(111, polar=True)
ax.plot(angles, values, 'o-', label=name)
ax.fill(angles, values, alpha=0.25)
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)
plt.ylim(0, 100)
plt.legend(loc='upper right', bbox_to_anchor=(1.1, 1.1))
plt.show()
```
这样,我们就可以绘制出每个学生的成绩雷达图了。当然,您需要根据具体的数据格式和绘图需求进行相应的调整。
怎么用python绘制成绩雷达图,中边线为蓝色,雷达图中间填充绿色
在Python中,我们可以使用`matplotlib`库中的`plot()`函数和`fill_between()`函数来创建雷达图,并设置边线颜色和填充颜色。下面是一个简单的例子,假设我们有学生的成绩数据:
```python
import numpy as np
import matplotlib.pyplot as plt
# 假设我们有6门课程的成绩
scores = [85, 90, 92, 78, 88, 94]
# 雷达图的半径
radius = max(scores) / 2
# 创建一个角度数组,从0到6弧度(对应一周)
angles = np.linspace(0, 2 * np.pi, len(scores), endpoint=False)
# 创建一个空的圆环填充区域
ax = plt.subplot(projection='polar')
# 绘制边线,颜色为蓝色
ax.plot(angles, scores, color='blue', linewidth=2, linestyle='-')
ax.set_thetagrids(angles * 180 / np.pi, labels=['语文', '数学', '英语', '物理', '化学', '体育']) # 标记各个学科
# 创建填充区域,颜色为绿色
ax.fill(angles, scores, facecolor='green', alpha=0.4) # alpha参数用于设置填充透明度
# 设置中心线
ax.axhline(y=0, color='blue', linestyle=':', linewidth=1) # 中间线
plt.show()
```
这个例子中,我们先计算出最大分数的一半作为半径,然后用`plot()`函数绘制边线,`fill_between()`函数用于填充内部,最后通过`ax.axhline()`设置了中心线。
阅读全文