一、“霍兰德人格分析”问题解析
雷达图(Redar Chart):多特性直观展示的重要方式
霍兰德人格分析
-霍兰德认为:人格性趣与职业之间用有一种内在的对应联系
-人格分类:研究型、艺术型、社会型、企业型、传统型、现实型
-职业:工程师、实验员、艺术家、推销员、记事员、社会工作者
霍兰德人格分析雷达图
-需求:雷达图方式验证霍兰德人格分析
-输入:各职业人群结合兴趣的调研数据
-输出:雷达图
使用的库
-通用雷达图绘制:matplotlib库(数据可视化)
-专业的多维数据表示:NumPy库(N维数据表示)
-输出:雷达图
=======================================================================
二、“霍兰德人格分析雷达图”实例展示
这里只放展示,没有分析,因为分析中涉及的知识面比较广,在这里说不完,老师也没讲。
以下展示代码:
#HollandRadarDraw.py
import numpy as np
import matplotlib.pyplot as plt
import matplotlib#以上代入NumPy、matplotlib库
matplotlib.rcParams['font.family'] = 'SimHei'
radar_labels = np.array(['研究型(I)', '艺术型(A)', '社会型(S)', '企业型(E)', '常规型(C)', '现实型(R)'])#雷达标签这里用array方法将多维数据组织起来
nAttr = 6
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, nAttr, endpoint = False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
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(ang les * 180 / np.pi, radar_labels, frac = 1.2)#以上使用matplotlib中绘制图像的方法绘制要使用的雷达图
plt.figtext(0.52, 0.95, '霍兰德人格分析', ha = 'center', size = 20)
legend = plt.legent(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()#将绘制的雷达图输出形成相关的文件
当然,我用的Python版本是3.7.2,不知道这期间Matplotlib是否更新,运行出来之后显示有些错误,暂时没有解决,以后我发现方法了,我会回来补上的。
老师运行结果:
我忽略frac之后结果同上,没有右边那牌子
我的错误:
Traceback (most recent call last):
File "E:/Python/9.2.2HollandRadarDraw.py", line 22, in <module>
plt.thetagrids(angles * 180 / np.pi, radar_labels, frac = 1.2)
File "D:\Program Files\Python\lib\site-packages\matplotlib\pyplot.py", line 1768, in thetagrids
lines, labels = ax.set_thetagrids(*args, **kwargs)
File "D:\Program Files\Python\lib\site-packages\matplotlib\projections\polar.py", line 1268, in set_thetagrids
t.update(kwargs)
File "D:\Program Files\Python\lib\site-packages\matplotlib\text.py", line 187, in update
super().update(kwargs)
File "D:\Program Files\Python\lib\site-packages\matplotlib\artist.py", line 916, in update
ret = [_update_property(self, k, v) for k, v in props.items()]
File "D:\Program Files\Python\lib\site-packages\matplotlib\artist.py", line 916, in <listcomp>
ret = [_update_property(self, k, v) for k, v in props.items()]
File "D:\Program Files\Python\lib\site-packages\matplotlib\artist.py", line 912, in _update_property
raise AttributeError('Unknown property %s' % k)
AttributeError: Unknown property frac
=======================================================================
9.2.3“霍兰德人格分析雷达图”举一反三
目标 + 沉浸 + 熟练
-编程的目标感:寻找感兴趣的目标,寻(wā)觅(jué)之
-编程的沉浸感:寻找可实现的方法,思(zúo)考(mo)之
编程的熟练度:练习,练习,在练习,熟练之
(以上是我个人分析结果,到现在没什么问题,欢迎批评指正!)