在我们进行数据挖掘,在建模后常常需要雷达图来进行客户价值分析,所以掌握雷达图势在必行。我们先介绍用matplotlib绘制雷达图,最后再介绍用excel绘制。
1、描绘一组数据的雷达图
'''
matplotlib雷达图
'''
import numpy as np
import matplotlib.pyplot as plt
#=======自己设置开始============
#标签
labels = np.array(['艺术A','调研I','实际R','常规C','企业E','社会S'])
#数据个数
dataLenth = 6
#数据
data = np.array([1,4,3,6,4,8])
#========自己设置结束============
angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)#将一个圆均分为6份
data = np.concatenate((data, [data[0]])) # 闭合
angles = np.concatenate((angles, [angles[0]])) # 闭合
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)# polar参数!!
ax.plot(angles, data, 'bo-', linewidth=2)# 画线
#ax.fill(angles, data, facecolor='r', alpha=0.25)# 填充
ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")
ax.set_title("matplotlib雷达图", va='bottom', fontproperties="SimHei")
ax.set_rlim(0,10)#设置同心圆半径
ax.grid(True)
plt.show()
2、描绘显示多组数据的雷达图
#-*- coding: utf-8 -*-
#画出特征雷达图,代码接KMeans_cluster.py
import numpy as np
import matplotlib.pyplot as plt
#设置显示中文字体
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
inputfile = 'data/zscoreddata.xls'
data = pd.read_excel(inputfile)
labels = data.columns #标签
k = 5 #数据个数
plot_data = kmodel.cluster_centers_ #聚类中心
color = ['b', 'g', 'r', 'c', 'y'] #指定颜色
angles = np.linspace(0, 2*np.pi, k, endpoint=False)#将这个圆均等分成K分
plot_data = np.concatenate((plot_data, plot_data[:,[0]]), axis=1) # 闭合
angles = np.concatenate((angles, [angles[0]])) # 闭合
fig = plt.figure(figsize=(12, 5))
ax = fig.add_subplot(111, polar=True) #polar参数!!
for i in range(len(plot_data)):
ax.plot(angles, plot_data[i], 'o-', color = color[i], label = u'客户群'+str(i), linewidth=2)# 画线
#绘制同心圆,并将半径值标出
ax.set_rgrids(np.arange(0.01, 3.5, 0.5), np.arange(-1, 2.5, 0.5), fontproperties="SimHei")
#theta为最外层的位置上标记上ZF、ZR、ZL、ZC、ZM
ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")
plt.legend(loc = 'lower right')
plt.show()
3、在excel中绘制雷达图
总结:由上面可得,在excel中绘制雷达图比用matplotlib绘制要简单得多,而且绘制的更好看,所以我们今后要绘制雷达图,建议用excel绘制。
领取专属 10元无门槛券
私享最新 技术干货