数据可视化中的雷达图绘制方法

示例代码:

import numpy as np

import matplotlib.pyplot as plt

# 导入数据

data = {

    '项目A': [41, 38, 36, 62, 68, 100],

    '项目B': [91, 88, 83, 72, 78, 26],

    '项目C': [81, 78, 85, 76, 74, 36]

}

# 生成角度序列

num_vars = len(data['项目A'])

angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False)

# 设置极坐标轴的标签(每个角度对应的标签)

labels = ['项目A', '项目B', '项目C'] *

num_vars // len(labels) + [''] * (num_vars % len(labels))

# 绘制雷达图

fig = plt.figure()

ax = fig.add_subplot(111, polar=True)

ax.fill(angles,

data['项目A'],

color='red') # 项目A的数据点

ax.fill(angles, data['项目B'],

color='blue') # 项目B的数据点

ax.fill(angles,

data['项目C'],

color='green')

# 项目C的数据点

ax.set_yticklabels([])

# 不显示y轴标签

ax.set_xticks(angles)

# 设置x轴刻度位置

ax.set_xticklabels(labels)

# 设置x轴刻度标签

plt.show()

实验:

# 导入库
import numpy as np
import matplotlib.pyplot as plt
 
# 修改成中文格式
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
 
# 准备数据
dim_num = 6
 
# A同学:‘数学’,‘英语’,‘线代’,‘爬虫’,‘数据可视化’,‘吃喝玩乐’  -->   41,38,36,62,68,100
data_a = np.array([41,38,36,62,68,100])
 
# B同学:‘数学’,‘英语’,‘线代’,‘爬虫’,‘数据可视化’,‘吃喝玩乐’  -->   91,88,83,72,78,26
data_b = np.array([91,88,83,72,78,26])
 
# C同学:‘数学’,‘英语’,‘线代’,‘爬虫’,‘数据可视化’,‘吃喝玩乐’  -->   81,78,85,76,74,36
data_c = np.array([81,78,85,76,74,36])
 
# 设置数值序列
angles = np.linspace(0, 2 * np.pi, dim_num, endpoint=False)
 
# 将多个数组按一定规则组合到一起
angles = np.concatenate((angles, [angles[0]]))
data_a = np.concatenate((data_a, [data_a[0]]))
data_b = np.concatenate((data_b, [data_b[0]]))
data_c = np.concatenate((data_c, [data_c[0]]))
 
# 设置标签
radar_labels = ['数学','英语','线代','爬虫','数据可视化','吃喝玩乐']
radar_labels = np.concatenate((radar_labels, [radar_labels[0]]))
 
# 绘制雷达图
plt.polar(angles,data_a,angles,data_b,angles,data_c)
 
# 设置极坐标的标签
plt.thetagrids(angles * 180/np.pi,labels=radar_labels)
 
# 填充多边形和设置透明度
plt.fill(angles,data_a,angles,data_b,angles,data_c,alpha=0.3)
 
# 展示图片
plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值