700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 霍兰德人格分析:利用Python第三方库matplotlib绘制雷达图

霍兰德人格分析:利用Python第三方库matplotlib绘制雷达图

时间:2019-06-19 14:54:06

相关推荐

霍兰德人格分析:利用Python第三方库matplotlib绘制雷达图

美国约翰霍普金斯大学霍兰德教授认为,个人职业兴趣特性与职业之间应有一种内在的对应关系。根据兴趣的不同,人格可分为研究型(I)、艺术型(A)、社会型(S)、企业型(E)、传统型(C)、现实型(R)六个维度,每个人的性格都是这六个维度的不同程度组合。

展示霍兰德人格分析最有效的工具是雷达图,以工程师、实验员、艺术家、推销员、社会工作者、记事员6个职业数据为例,利用Python第三方库matplotlib绘制雷达图。

代码示例

import matplotlibimport matplotlib.pyplot as plt import numpy as npmatplotlib.rcParams['font.family']='SimHei' matplotlib.rcParams['font.sans-serif']=['SimHei'] #为了正确显示中文字体,将字体更改为黑体‘SimHei’data_labels=np.array(['工程师','实验员','艺术家','推销员','社会工作者','记事员'])n=6radar_labels=np.array([' 研究型(I)','艺术型(A)','社会型(S)',\'企业型(E) ','常规型(C)','现实型(R)']) # 为了美观加了几个空格data=np.array([[0.40,0.32,0.35,0.30,0.30,0.88], #6种职业数据,列表元素为列表[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]]) angles=np.linspace(0,2*np.pi,n,endpoint=False) #将360度平均分为n个部分(有endpoint=False分为6个部分,反之5个部分)data=np.concatenate((data,[data[0]]))angles=np.concatenate((angles,[angles[0]])) plt.figure(facecolor='white') #绘制全局绘图区域plt.subplot(111,polar=True) #绘制一个1行1列极坐标系子图,当前位置为1plt.figtext(0.52,0.95,'霍兰德人格分析',ha='center',size=20) #放置标题 ,ha是horizontalalignment(水平对齐方式)的缩写plt.thetagrids(angles*180/np.pi,radar_labels) #放置属性(radar_labels)plt.plot(angles,data,'o-',linewidth=1.5,alpha=0.2)#连线,画出不规则六边形plt.fill(angles,data,alpha=0.25) #填充,alpha是透明度(自己的实践理解)legend=plt.legend(data_labels,loc=(0.94,0.80),labelspacing=0.1) #放置图注(右上角)plt.setp(legend.get_texts(),fontsize='small')plt.grid(True) #打开坐标网格plt.show() #显示

总结

1、正确显示字体的设置方式

2、列表元素可以为列表

3、endpoint=False

4、np.concatenate()函数:将数据(data)和角度(angles)的数组首尾闭合。(不是很明白)

5、polar参数指定了绘制类型为极坐标这是subplot()除默认正方形坐标系外唯一支持的内置坐标图。

6、了解plot()参数,o是多边形的空心顶点(加粗),- 表示多边形的边加粗实线 。

7、thetagrids()需要有angles,labels参数,由于我使用的是python3.6,没有frac属性。

thetagrids()添加frac属性后,报错:AttributeError: ‘Text’ object has no property ‘frac’

这是属性错误。

绘制结果

参考资料:

嵩天、礼欣、黄天羽著 《Python语言程序设计基础(第2版)》 高等教育出版社

如有错误,敬请指正。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。