matplotlib 雷达图2

简介: 说明搞了一个最新版本的雷达图,比以前那个美观。不多说,代码奉上:完整代码'''matplotlib雷达图'''import numpy as npimport matplotlib.pyplot as plt# 雷达图def plot_radar(labels, data, score): ''' 用法: >>> labels = np.

说明

搞了一个最新版本的雷达图,比以前那个美观。

不多说,代码奉上:

完整代码

'''
matplotlib雷达图
'''
import numpy as np
import matplotlib.pyplot as plt


# 雷达图
def plot_radar(labels, data, score):
    '''
    用法:
    >>> labels = np.array(['艺术A','调研I','实际R','常规C','企业E','社会S']) #标签
    >>> data = np.array([1,4,3,6,4,8]) # 数据
    >>> score = 10 # 表明数据是“十分制”。其可选的选项有1分制、5分制、10分制、100分制
        
    >>> plot_radar(labels, data, score) # 画雷达图
    '''
    n = len(labels)
    
    # 转化为十分制!!!
    if score in [5, 10, 100]:
        data = data * 10/score
    elif score == 1:
        data = data * 10
    
    angles = np.linspace(0 + np.pi/2, 2*np.pi + np.pi/2, n, endpoint=False) # 旋转90度,从正上方开始!
    
    data = np.concatenate((data, [data[0]])) # 闭合
    angles = np.concatenate((angles, [angles[0]])) # 闭合
    
    
    fig = plt.figure()
    ax = fig.add_subplot(111, polar=True)# 参数polar,表示极坐标!!
    
    # 自己画grid线(5条环形线)
    for i in [2,4,6,8,10]:
        ax.plot(angles, [i]*(n+1), 'b-',lw=0.5) # 之所以 n +1,是因为要闭合!
    
     # 填充底色
    ax.fill(angles, [10]*(n+1), facecolor='g', alpha=0.5)

    # 自己画grid线(6条半径线)
    for i in range(n):
        ax.plot([angles[i], angles[i]], [0, 10], 'b-',lw=0.5)
        
    
    # 画线
    ax.plot(angles, data, 'bo-', linewidth=2)
    
    # 填充
    #ax.fill(angles, data, facecolor='r', alpha=0.25)
    ax.fill(angles, data, facecolor='r')
    
    
    ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")
    ax.set_title("matplotlib雷达图", va='bottom', fontproperties="SimHei")
    ax.set_rlim(0,10)

    # 下两行去掉所有默认的grid线
    ax.spines['polar'].set_visible(False) # 去掉最外围的黑圈
    ax.grid(False)                        # 去掉中间的黑圈

    # 关闭数值刻度
    ax.set_yticks([])


    plt.show()



# 测试
if __name__ == '__main__':
    
    labels = np.array(['艺术A','调研I','实际R','常规C','企业E','社会S']) #标签
    
    data = np.array([1,4,3,6,4,8]) # 数据
    
    score = 10 # 表明数据是“十分制”。其可选的选项有1分制、5分制、10分制、100分制
    
    
    # 画雷达图
    plot_radar(labels, data, score)

效果图

img_bee593fcbd76600ad104a0a67bac28cc.png

目录
相关文章
|
3月前
|
数据可视化 Python
Plotly:绘制蜡烛图
Plotly:绘制蜡烛图
55 0
|
1月前
|
编解码 数据可视化 数据挖掘
matplotlib绘制三维曲面图时遇到的问题及解决方法
本文详细介绍了在使用Matplotlib绘制三维曲面图时可能遇到的问题及其解决方法。从数据维度匹配到颜色映射,从图形显示到保存,涵盖了常见的各种情况。通过正确处理这些问题,可以确保生成高质量的三维可视化图形,为数据分析和展示提供有力支持。希望本文对您在使用Matplotlib进行三维绘图时有所帮助。
31 0
|
4月前
|
数据可视化 图计算 Python
Matplotlib雷达图
【8月更文挑战第1天】Matplotlib是Python中最流行的数据可视化库之一,它提供了丰富的绘图功能,包括折线图、散点图、直方图等等。本文将介绍Matplotlib中的一种特殊图表类型——雷达图(也称为极坐标图),并通过代码实例演示如何创建和定制雷达图。
59 2
|
7月前
R语言中绘制箱形图的替代品:蜂群图和小提琴图
R语言中绘制箱形图的替代品:蜂群图和小提琴图
|
7月前
|
存储 数据可视化
使用 plotly 绘制旭日图
使用 plotly 绘制旭日图
326 0
如何用ggplot2绘制基因功能富集气泡图?
如何用ggplot2绘制基因功能富集气泡图?
ggplot2|扩展包从0开始绘制雷达图
ggplot2|扩展包从0开始绘制雷达图
384 0
|
项目管理 Python
Matplotlib绘制燃尽图
燃尽图是IT项目管理的重要知识点,本文试用Matplotlib绘制燃尽图。
191 1
Matplotlib绘制燃尽图
|
数据可视化 Python
可视化库Matplotlib-柱形图与盒图
可视化库Matplotlib-柱形图与盒图
可视化库Matplotlib-柱形图与盒图
MPAndroidChart_RadarChart雷达图的那些事
在最近的使用中,用到了RadarChart,也就是雷达图或者说是蜘蛛图,网上对RadarChart的介绍也并不是很多,所以这里来做一个比较详细的介绍。
300 0
MPAndroidChart_RadarChart雷达图的那些事