可视化日记——极坐标绘制雷达图

目录

一、创建极坐标

二、数据集准备

三、划分角度 

四、指定半径

五、绘制


一、创建极坐标

        Python中没有直接画雷达图的函数,若要绘制需要先创建画布和极坐标轴域,再设定角度与半径的参数(极坐标中角度与半径确定一个点的位置)

fig = plt.figure(figsize=[10, 6])
ax = plt.subplot(111, polar=True)

二、数据集准备

        前期已由k-means聚类算法得到对应数据集 visualization_data,对其进行标准化数处理:

# 标准化
v_scaler= StandardScaler()
v_scaled= v_scaler.fit_transform(visualization_data.iloc[:5,:])

v_scaled=pd.DataFrame(v_scaled,index=visualization_data.index[:5],columns=visualization_data.columns)
v_scaled

        标准化后待绘图的数据 v_scaled 如下:

三、划分角度 

        现在有五个属性,需要把 2π 划分为5分

# 划分角度
angles = np.linspace(0, 2 * np.pi, len(v_scaled), endpoint=False) # 极坐标的角度值根据数据属性数量进行等分
label_θ = np.concatenate((angles,[angles[0]]),axis=0)
print(label_θ)
print(angles)

# 有无concatenate的区别
[0.         1.25663706 2.51327412 3.76991118 5.02654825 0.        ]
[0.         1.25663706 2.51327412 3.76991118 5.02654825]

(没有 concatenate 连接在绘制时会变成这样) 

https://www.cnblogs.com/kallan/p/6738577.html

        [angles[0]]无方括号会报错,因为进行的是数组间的连接,不能数组与整数之间这样连接

四、指定半径

# 值——即半径长度,以类别2为例
propvalue = v_scaled.iloc[:,1]
label_l=np.concatenate((propvalue,[propvalue[0]]))
print(propvalue)
print(label_l)

[Recency      1.819582
Frequency   -0.864999
Monetary     0.263034
客单价         -0.353453
客单件         -0.864165
Name: 2, dtype: float64]

[ 1.81958224 -0.86499907  0.26303444 -0.35345253 -0.86416507  1.81958224]

五、绘制

        绘制雷达图,在极坐标下仍然使用plot(),参数是极坐标参数就可以了

### 以下代码需要在同一框内实现 ###
fig = plt.figure(figsize=(30,30)) # 创建画布
mpl.rcParams["font.sans-serif"] = ["SimHei"] # 中文
mpl.rcParams['axes.unicode_minus']=False # 负号
plt.subplots_adjust(hspace=0.4)  # 设置一下子图之间的垂直距离
color=['green','springgreen','springgreen','lime','lime','g','g','lime','g'] # 指定颜色

for i in range(0,len(v_scaled.columns)):        # 0开始循环绘制,数据集有9列
    ax1 = fig.add_subplot(3,3,i+1,polar=True)   # 定位到第i+1个axes
    
    propvalue = v_scaled.iloc[:,i]                        # 第 i 列  
    label_l=np.concatenate((propvalue,[propvalue[0]]))    # 连接
    ax1.plot(label_θ, label_l,color='g',alpha=0.5 )       # plot的作用是画图并连线
    ax1.fill(label_θ, label_l, color=color[i],alpha=1)    # 填充,设置颜色和深浅
    
    # 其他元素设置
    # 设置雷达图中每一项的标签显示
    ax1.set_thetagrids(angles*180/np.pi, v_labels,fontsize=25)    

    # 设置雷达图的0度起始位置
    ax1.set_theta_zero_location('E')

    # 设置雷达图的坐标刻度范围
    ax1.set_rlim(-2.5, 2.5)

    # 设置雷达图的坐标值显示角度,相对于起始角度的偏移量

    # 设置标题
    ax1.set_title('类别'+str(v_scaled.columns[i])+':'+str(labeled_data_rate.T.loc['数量',v_scaled.columns[i]])+'人',fontsize=35)

(部分图片) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475243.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

反射机制的知识

1.反射机制 静态语言:JAVA 和C 反射:可以借助于反射API可以获取任何类的内部信息,并可以直接操作任意对象的内部属性、方法、泛型等。 实现获得Class类的方法有哪些: 类名.classClass.forName("类的绝对路径")对象.ge…

Python爬虫基础教程:爬虫采集数据要注意什么?|电商数据商品详情页API接口

数字化时代,大数据信息的收集和应用逐步普及,离不开网络爬虫的广泛应用。由于数据和信息市场的不断扩大,需要大规模的网络爬虫来应对大规模的数据信息采集。在此过程中需要注意哪些问题? 1、先检查是否有API,API是网站…

Women of Polkadot:波卡生态的女性社群与创新力量

在 Web3 行业里,女性似乎总是被忽视的群体。线下峰会的合照一眼望去尽是西装革履的男性成员,项目和机构高管的名单里也似乎难以寻觅到女性领导者的身影。在这个强调技术、编程、极客精神的行业里,女性身份的缺席看起来如此天生自然。 根据 B…

人工智能基础部分25-一篇文章将透注意力机制(Attention)与自注意力机制(self-Attention),帮助大家加深印象

大家好,我是微学AI,今天给大介绍一下人工智能基础部分25-一篇文章将透注意力机制(Attention)与自注意力机制(self-Attention),帮助大家加深印象。注意力机制(Attention)与自注意力机制(self-Attention)都是在深度学习模型中用于提升模型性能的技术&#…

C 多维数组

C 语言支持多维数组。多维数组声明的一般形式如下: type name[size1][size2]...[sizeN];例如,下面的声明创建了一个三维 5 . 10 . 4 整型数组: int threedim[5][10][4];二维数组 多维数组最简单的形式是二维数组。一个二维数组&#xff0c…

测试开发面试题总结(全)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 某基金管理公司线下测试开发面试题总结。 测开题目如下 可以尝试自己先写,写完之后…

【Linux】实现进度条小程序

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 回车和换行3. 缓冲区4. 进度条4.1 倒计时设置4.2 进度条4.2.1 实现简单进度条4.2.2 进度条完善 5. 附进度条代码5.1 Processbar.h5.2 Processbar.c5.3 Main.c5.4 Makefile 1. 前言 在之前已经了解了 【Lin…

GDK-你的跳广告神器(某足兆足兆替品)

GKD(又称搞快点)是一款免费开源简洁多规则的自动跳过广告的软件。简而言之,基于预设的定时更新订阅规则快照功能,实现识别并自动点击跳过任何开屏广告及点击关闭应用内部任何弹窗广告,如关闭某些APP开屏和内含推荐广告…

数据库关系代数运算:期末+复试

文章目录 一、知识概览二、并三、差四、交五、笛卡尔积六、投影七、选择八、连接九、除实战训练 一、知识概览 二、并 三、差 四、交 五、笛卡尔积 六、投影 投影是对列 七、选择 选择是对行 八、连接 自然连接是一种特殊的等值连接,他要求两个关系表中进行连…

自制颜色调试网站(渐变色调试,桌面选色)

一、页面展示 二、网站 缓若江海凝清光

【Linux】进程控制 -- 详解

一、进程创建 目前学习到的进程创建的两种方式: 命令行启动命令(程序、指令等) 。通过程序自身,调用 fork 函数创建出子进程。 1、fork 函数初识 在 Linux 中的系统接口 fork 函数是非常重要的函数,它从已存在进程中…

JavaEE 初阶篇-深入了解操作系统中的进程与 PCB

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 关于计算机是如何进行工作的 “常识” 1.1 关于寄存器、缓存与内存是如何配合 CPU “工作” 2.0 操作系统概述 2.1 操作系统内核 2.2 进程 2.3 PCB 2.3.1 PCB 属性…

Grok-1开源革新:探索人工智能的新境界

Grok-1开源革新:探索人工智能的新境界 在科技发展的马拉松中,Elon Musk旗下的xAI公司稳步前进,推出了名为Grok-1的语言模型。这个巨型模型,作为目前参数量最大的开源人工智能语言模型,赋予了机器学习领域全新的活力。 …

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(二)

概览 我们在第一篇博文: 《Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(一)》中讨论了 Swift 语言中的钩子(Hook)机制,以及如何用它来“勾”住 NSObject 的 init 构造器方法。 不过,目前“疑云重重”的实现显然“虐”的你在一直“怀疑人生”…

信雅纳400/800G网络测试仪之 CDF/ Extended Payload 功能:完全用户自定义的协议报文支持/可编程的协议内容支持

Note# 2024-3-21 今天被一个做芯片测试的客户追着问,应该合作在测试仪上做完全自定义的报文,添加自己的私有协议进去,他觉得每次都导入报头太麻烦了,然后就看了下Application Note关于CDF功能的描述,照着机翻的版本来…

回归学术圈,何恺明MIT第一堂AI课

大家好,3月7日,麻省理工学院电气工程与计算机科学系副教授何恺明,迈上讲台,并成功地进行了他人生中的首堂教学课程。 第一堂课 课程官网:https://advances-in-vision.github.io/ 作为麻省理工学院(MIT&am…

处理器方法的返回值--返回对象Object

处理器方法也可以返回Object对象。这个Object可以是Integer,String,自定义对象, Map,List 等。但返回的对象不是作为逻辑视图出现的,而是作为直接在页面显示的数据出现的。 返回对象,需要使用ResponseBody注…

【前端工程化】TypeScript概念及使用

前端工程化(2)- TS 文章目录 前端工程化(2)- TSTS概念TS声明变量方式TS的类访问修饰符静态属性抽象类 TS的数据类型tuple元祖enum枚举anyvoidnever enum枚举使用例子反向映射枚举和常量枚举(const枚举)的区…

一文读懂融资融券交易技巧!在上海开融资融券账户交易利率一般是多少?

融资融券交易技巧包括以下几点: 熟悉股票市场:了解市场走势、公司基本面等信息,根据趋势选择合适的股票进行交易。 做好风险管理:对买卖的风险进行合理评估,设定止损价位,防止损失过大。 控制杠杆比例&am…

PowerShell 一键更改远程桌面端口

前言 提高工作效率,安全性和规范化,最终实现一键更改Windows 远程桌面端口 前提条件 开启wmi,配置网卡,参考 一键更改远程桌面端口自动化脚本 默认端口3389变更后的端口3390win+r mstsc YOU_ip常规更改的连接方式win+r mstsc YOU_ip:3390需要恢复到原来的端口3390更改成3…