2.9.2 Python 数据可视化----霍兰德职业兴趣测试

霍兰德职业兴趣测试是美国职业指导专家霍兰德根据他本人大量的职业咨询经验及其职业
类型理论编制的测评工具。根据个人兴趣的不同,霍兰德将人格分为研究型(I)、艺术型(A)、
社会型(S)、企业型(E)、传统型(C)和现实型(R)6 个维度,每个人的性格都是这 6 个维
度不同程度的组合。假设现在 6 名用户分别进行了测试,得出的测试结果如表 2-8 所示。
根据表 2-8 的数据,将标题一行的数据作为雷达图的标签,将其余行的数据作为雷达图
的数据,使用 polar() 函数绘制霍兰德职业兴趣测试结果的雷达图,具体代码如下。
In [24]:
# 09_holland_professional_interest_test
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
dim_num = 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]])
angles = np.linspace(0, 2 * np.pi, dim_num, endpoint=False)
angles = np.concatenate((angles, [angles[0]]))
data = np.concatenate((data, [data[0]]))
# 维度标签
rradar_labels = [' 研究型 (I)', ' 艺术型 (A)', ' 社会型 (S)',
' 企业型 (E)', ' 传统型 (C)', ' 现实型 (R)']
radar_labels = np.concatenate((radar_labels, [radar_labels[0]]))
# 绘制雷达图
plt.polar(angles, data)
# 设置极坐标的标签
plt.thetagrids(angles * 180/np.pi, labels=radar_labels)
# 填充多边形
plt.fill(angles, data, alpha=0.25)
plt.show()
运行程序,效果如图 2-22 所示。
图 2-22 中,紫色的多边形代表用户 1 的测试结果 ;棕色的多边形代表用户 2 的测试结
果 ;蓝色的多边形代表用户 3 的测试结果 ;红色的多边形代表用户 4 的测试结果 ;橙色的多
边形代表用户 5 的测试结果 ;绿色的多边形代表用户 6 的测试结果。由图 2-22 可知,用户 1
偏向于现实型人格 ;用户 2 偏向于研究型人格 ;用户 3 偏向于艺术型人格 ;用户 4 偏向于企
业型人格 ;用户 5 偏向于社会型人格 ;用户 6 偏向于传统型人格。
2.10 绘制误差棒图

 2.10.1 使用 errorbar() 绘制误差棒图

使用 pyplot 的 errorbar() 函数可以快速绘制误差棒图,errorbar() 函数的语法格式如下所示 :
errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None,
    elinewidth=None, capsize=None, barsabove=False, lolims=False,
    uplims=False, xlolims=False, xuplims=False, errorevery=1,
    capthick=None, * , data=None, ** kwargs)
该函数常用参数的含义如下。
·x,y :表示数据点的位置。
·xerr,yerr :表示数据的误差范围。
·fmt :表示数据点的标记样式和数据点之间连接线的样式。
·ecolor :表示误差棒的线条颜色。
·elinewidth :表示误差棒的线条宽度。
·capsize :表示误差棒边界横杆的大小。
·capthick :表示误差棒边界横杆的厚度。
使用 errorbar() 函数绘制一个误差棒图,代码如下。
In [25]:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(5)  
y = (25, 32, 34, 20, 25)
y_offset = (3, 5, 2, 3, 3)
plt.errorbar(x, y, yerr=y_offset, capsize=3, capthick=2)
plt.show()
运行程序,效果如图 2-23 所示。

猜你喜欢

转载自blog.csdn.net/qq_43416206/article/details/132262573