龙空技术网

python绘制雷达图

东少笔记 99

前言:

而今同学们对“python画圆形雷达图”都比较讲究,同学们都需要剖析一些“python画圆形雷达图”的相关资讯。那么小编同时在网络上搜集了一些有关“python画圆形雷达图””的相关文章,希望朋友们能喜欢,各位老铁们一起来了解一下吧!

效果展示功能实现引入所需的库

1、pandas用于数据分析;

2、numpy针对数组运算提供大量的数学函数库;

3、matplotlib画图库。

import pandas as pdimport numpy as npimport matplotlib.pyplot as plt
读取表数据并做一些设置
df = pd.read_excel('能力图.xlsx')df = df.set_index('能力评价指标')df = df.T  # 转置数据表格df.index.name = '个人'
定义方法plot_radar来绘制雷达图
def plot_radar(data, feature):    plt.rcParams['font.sans-serif'] = ['SimHei']    plt.rcParams['axes.unicode_minus'] = False  # 解决无法正常显示负号的问题    cols = ['经验值', '战斗力', '防御力', '稳定性', '钟情指数']    colors = ['#d81e06', '#f4ea2a', '#1296db', '#d4237a']  # 为每个个人设置图表中的显示颜色    angles = np.linspace(0.1 * np.pi, 2.1 * np.pi, len(cols), endpoint=False)  # 根据要显示的指标个数对圆形进行等分    angles = np.concatenate((angles, [angles[0]]))  # 连接刻度线数据    fig = plt.figure(figsize=(8, 8))  # 设置显示图表的窗口大小    ax = fig.add_subplot(111, polar=True)  # 设置图表在窗口中的显示位置,并设置坐标轴为极坐标体系    for i, c in enumerate(feature):  # 根据feature参数值循环显示个人的数量        stats = data.loc[c]  # 获取品牌对应的指标数据        stats = np.concatenate((stats, [stats[0]]))  # 连接品牌的指标数据        ax.plot(angles, stats, '-', linewidth=6, c=colors[i], label='%s' % c)  # 画图        ax.fill(angles, stats, color=colors[i], alpha=0.25)  # 填充颜色    ax.legend()  # 添加图例    ax.set_yticklabels([])  # 隐藏坐标轴数据    ax.set_thetagrids(angles * 180 / np.pi, cols, fontsize=16)  # 添加数据标签    plt.show()  # 显示图    return fig
调用方法plot_radar绘制雷达图

第二个参数可根据实际情况设置,但不能超过表的个数。

plot_radar(df, ['张一', '张二', '张三', '张四'])  # 调用函数
全部代码如下
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdf = pd.read_excel('能力图.xlsx')df = df.set_index('能力评价指标')df = df.T  # 转置数据表格df.index.name = '个人'def plot_radar(data, feature):    plt.rcParams['font.sans-serif'] = ['SimHei']    plt.rcParams['axes.unicode_minus'] = False  # 解决无法正常显示负号的问题    cols = ['经验值', '战斗力', '防御力', '稳定性', '钟情指数']    colors = ['#d81e06', '#f4ea2a', '#1296db', '#d4237a']  # 为每个个人设置图表中的显示颜色    angles = np.linspace(0.1 * np.pi, 2.1 * np.pi, len(cols), endpoint=False)  # 根据要显示的指标个数对圆形进行等分    angles = np.concatenate((angles, [angles[0]]))  # 连接刻度线数据    fig = plt.figure(figsize=(8, 8))  # 设置显示图表的窗口大小    ax = fig.add_subplot(111, polar=True)  # 设置图表在窗口中的显示位置,并设置坐标轴为极坐标体系    for i, c in enumerate(feature):  # 根据feature参数值循环显示个人的数量        stats = data.loc[c]  # 获取品牌对应的指标数据        stats = np.concatenate((stats, [stats[0]]))  # 连接品牌的指标数据        ax.plot(angles, stats, '-', linewidth=6, c=colors[i], label='%s' % c)  # 画图        ax.fill(angles, stats, color=colors[i], alpha=0.25)  # 填充颜色    ax.legend()  # 添加图例    ax.set_yticklabels([])  # 隐藏坐标轴数据    ax.set_thetagrids(angles * 180 / np.pi, cols, fontsize=16)  # 添加数据标签    plt.show()  # 显示图    return figplot_radar(df, ['张一', '张二', '张三', '张四'])  # 调用函数

标签: #python画圆形雷达图 #python雷达图片 #雷达图的作图步骤包括