Python 画雷达图

import matplotlib.pyplot as plt
import pandas as pd
from math import pi

df = pd.DataFrame({
    'group': ['A', 'B', 'C', 'D'],
    'var1': [38, 15, 12, 7],
    'var2': [34, 16, 19, 3],
    'var3': [8, 29, 13, 1.4],
    'var4': [17, 31, 23, 24],
    'var5': [18, 35, 22, 4]
})


def make_radar(row, title, color):
    categories = list(df)[1:]  # ['var1', 'var2', 'var3', 'var4', 'var5']
    N = len(categories)  # 5

    angles = [n / float(N) * 2 * pi for n in range(N)]
    angles += angles[:1]#angles[:1]:[0.0]
    #print(angles)#[0.0, 1.2566370614359172, 2.5132741228718345, 3.7699111843077517, 5.026548245743669, 0.0]

    ax = plt.subplot(2, 2, row + 1, polar=True)#ploat=True,绘制极点图

    ax.set_theta_offset(pi / 2)#ax.set_theta_offset():该方法设置角度偏离
    ax.set_theta_direction(-1)#ax.set_theta_direction():该方法设置极坐标的正方向,1:逆时针,-1:顺时针,默认逆时针

    plt.xticks(angles[:-1], categories, color='grey', size=8)#改变X坐标轴 刻度名称,颜色,字体大小

    ax.set_rlabel_position(0)#设置极径标签显示位置,0就是没有偏移
    plt.yticks([10, 20, 30], ["10", "20", "30"], color="grey", size=7)
    plt.ylim(0, 40)#取值范围

    values = df.loc[row].drop('group').values.flatten().tolist()#flatten()返回一位数组
    values += values[:1]
    ax.plot(angles, values, color=color, linewidth=2, linestyle='solid')#做折线图
    ax.fill(angles, values, color=color, alpha=0.4)#做面积图


    plt.title(title, size=11, color=color, y=1.1)# 添加标题


my_dpi = 96
plt.figure(figsize=(1000 / my_dpi, 1000 / my_dpi), dpi=my_dpi)
my_palette = plt.cm.get_cmap('Set2', len(df.index))#plt.cm.get_cmap():该方法设置画图颜色。len(df.index)=4

for row in range(0, len(df.index)):
    make_radar(row=row, title='group' + df['group'][row], color=my_palette(row))

plt.savefig('雷达图.png')
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值