Python绘制雷达图时遇到的坑的解决
作者:未来影子 发布时间:2021-05-18 00:09:03
标签:Python,雷达图
ValueError: The number of FixedLocator locations (9), usually from a call to set_ticks, does not match the number of ticklabels (8).
运行书中例题时发现了这个错误,
原代码如上:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='simhei'
# 某学生的课程与成绩
courses = np.array(['C++','Python','高数','大学英语','软件工程',
'组成原理','数字图像处理','计算机图形学'])
scores=np.array([80,95,78,85,45,65,80,60])
datalength = len(scores) #数据长度
# angles数组把圆周等分为dataLength份
angles = np.linspace(0, #数组第一个数据
2*np.pi, #数组最后一个暑假
datalength, #数组中的数据量
endpoint=False) #不包含终点
scores = np.concatenate((scores,[scores[0]]))
angles = np.concatenate((angles,[angles[0]]))
# 绘制雷达图
print(angles)
print('='*20)
print(scores)
plt.polar(angles,
scores,
'rv--',
linewidth=2)
# 设置角度网络标签
plt.thetagrids(angles*180/np.pi,courses)
# 填充雷达图内部
plt.fill(angles,scores,facecolor='r',alpha=0.6)
plt.show()
自己搜查资料后,了解到,只对socres,和angles做闭合还是不够
需要再对courses进行闭合
courses = np.concatenate((courses,[courses[0]]))
此时就能正确运行出来。
这里在附上霍兰德人格分析代码:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']="SimHei"
radar_labels = np.array(['研究型(I)','艺术型(A)','社会型(S)',\
'企业型(E)','常规型(C)','现实型(R)'])
data = np.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],
[0.85, 0.35, 0.30, 0.40, 0.40, 0.30],
[0.43, 0.89, 0.30, 0.28, 0.22, 0.30],
[0.30, 0.25, 0.48, 0.85, 0.45, 0.40],
[0.20, 0.38, 0.87, 0.45, 0.32, 0.28],
[0.34, 0.31, 0.38, 0.40, 0.92, 0.28]])
data_labels =('艺术家','实验员','工程师','推销员','社会工作者','记事员')
angles = np.linspace(0, 2*np.pi, 6, endpoint=False)
fig = plt.figure(facecolor = "white")
plt.subplot(111, polar = True)
plt.plot(angles, data,'o-',linewidth=1, alpha=0.2)
plt.fill(angles, data, alpha=0.25)
plt.thetagrids(angles*180/np.pi, radar_labels)
plt.figtext(0.52, 0.95, '霍兰德人格分析', ha='center', size=20)
legend = plt.legend(data_labels, loc = (0.94, 0.80), labelspacing = 0.1)
plt.setp(legend.get_texts(), fontsize='large')
plt.grid(True)
plt.savefig('holland_radar.jpg')
plt.show()
来源:https://blog.csdn.net/mynameisgt/article/details/115802432


猜你喜欢
- 使用tkinter实现下拉多选框效果如图:1、选择一些选项2、全选选项代码如下:import tkinterfrom ComBoPicker
- 本文实例讲述了Python实现查找二叉搜索树第k大的节点功能。分享给大家供大家参考,具体如下:题目描述给定一个二叉搜索树,找出其中第k大的节
- 一、复习首先将上次画的矩形做复杂一些的小程序:import pygame,sys, randompygame.init()screen =
- 一、文件基本的操作1、open() 打开文件open() 方法用于打开一个文件,并返回File文件对象,在对文件进行处理过程都需要使用到这个
- 今天处理了一个日期选择器的ie和ff的兼容问题,本来这种情况就很难找错误,找了好久才把错误定位到js中创建元素的方法document.cre
- 说说最近的一个案例吧,线上阿里云RDS上的一个游戏日志库最近出现了一点问题,随着游戏人数的增加,在线日
- 使用python下的stmpmail 模块,可以实现邮件的轻松和定制化发送,不过在发给多用户时,可能会对该模块理解不到位,造成发送异常或信息
- 1、冒泡排序法让列表中的一项和下一项作比较,若前一项大于后一项则交换两者位置(升序)。方法一:直接使用for循环L=[8,2,50,3]fo
- CSDN免积分下载 你懂的。1、输入资源地址如:http://download.csdn.net/download/gengqkun/412
- 本文实例讲述了python中sleep函数用法。分享给大家供大家参考。具体如下:Python中的sleep用来暂停线程执行,单位为秒#---
- 前言总结一下最近看的关于opencv图像几何变换的一些笔记. 这是原图: 1.平移import cv2import numpy as npi
- 1.准备工作1.在文件里找到设置2.在项目里找到python解释器,点击右边的加号3.搜素pygame并安装同理下载pgzero安装包2.开
- Object.freeze()Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这
- 一:工具准备Anaconda:是一个开源的Python发行版本,其中包含了conda、Python等180多个科学包及其依赖项。【Anaco
- 发现问题python嵌套列表大家应该都不陌生,但最近遇到了一个问题,这是工作中遇到的一个坑,首先看一下问题raw_list = [[&quo
- laravel 实现短信验证码功能,搜索资料发现比较流行的有两个包:一个是laravel sms 地址 https://gith
- 安装py2app打开终端输入pip3命令安装py2app工具pip3 install py2pp安装完成后,默认会装到/Library/Fr
- 目录func Containsfunc HasPrefixfunc HasSuffixfunc Replacefunc Splitfunc
- 本文实例为大家分享了python合并同类型excel表格的具体代码,供大家参考,具体内容如下python脚本如下,验证有效。#!/usr/b
- 目录1、面向对象基本概念1.1 万物皆对象1.2 面向对象编程1.3 面向对象的特征2、Python面向对象的术语3、Python类的构建3