本文共 887 字,大约阅读时间需要 2 分钟。
import numpy as npimport matplotlib.pyplot as pltimport seaborn as snsfrom matplotlib.font_manager import FontProperties# 数据准备labels=np.array([u" 推进 ","KDA",u" 生存 ",u" 团战 ",u" 发育 ",u" 输出 "])stats=[83, 61, 95, 67, 76, 88]# 画图数据准备,角度、状态值angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False)stats=np.concatenate((stats,[stats[0]]))angles=np.concatenate((angles,[angles[0]]))# 用 Matplotlib 画蜘蛛图fig = plt.figure()ax = fig.add_subplot(111, polar=True)ax.plot(angles, stats, 'o-', linewidth=2)ax.fill(angles, stats, alpha=0.25)# 设置中文字体font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)ax.set_thetagrids(angles* 180/np.pi, labels, FontProperties=font)plt.show()
代码中 flt.figure 是创建一个空白的 figure 对象,这样做的目的相当于画画前先准备一个
空白的画板。然后 add_subplot(111) 可以把画板划分成 1 行 1 列。再用 ax.plot 和 ax.fill 进行连线以及给图形上色。最后我们在相应的位置上显示出属性名。这里需要用到 中文,Matplotlib 对中文的显示不是很友好,因此我设置了中文的字体 font,这个需要在 调用前进行定义转载地址:http://cupf.baihongyu.com/