以前在一些数据分析案例中看到了用Go语言制作的雷达图,非常漂亮,我想在matlibplot.pyplot上也画出同样的东西。 遗憾的是,matlibplot.pyplot模块没有直接绘制雷达图的函数,但可以根据‘polar’图形的特征进行改进。 以下记录雷达图的制作方法。
importnumpyasnpimportmatplotlib.pyplotasplt #中文PLT.rcparams [ ‘ font.sans-serif ‘ ]=’ simhei ‘ #普通显示符号PLT.rcparams 这很像美化。 您可以在plt.style.available中查看选项值。 你会发现其他风格真的很丑陋。 PLT.style.use(‘ggplot ‘ )结构数据values=[ 2.6,2.1,3.4,3,4.1 ] feature=[ ‘个人能力’,’ QC知识’,’问题解决能力’,’服务质量意识len ) values ),endpoint=False成功显示拼接数据,并使图形中的线关闭(values=NP.concatenate ) [angles[0]] ) ) )出图fig=plt.figure ) #设置为极坐标格式ax=fig.add (values,’ o-‘,linewidth=2) alpha=0.25 )以刻度分隔图标上的角度,并为每个数据点添加标签ax.set _ theta grids fa ture (#设置雷达图范围ax.set _ ylim (0,5 ) )
一般来说,使用雷达图的时候,是为了比较两组数据。 因此,我们来看看如何在雷达图上比较两组数据
values _2=[ 1.7,4.1,3.3,2.6,3.8 ] values _2=NP.concatenate ([ values _ 2,[values_2[0]]] ) ) fig=values_2,alpha=0.25 ) ax.set _ theta grids (angles * 180/NP.pi,feature ) ax.set_ylim ) 0,5 ) PLT.titl
如果有多个组的数据,为了简化代码,可以用for循环来描绘。
importnumpyasnpimportmatplotlib.pyplotasplt #中文PLT.rcparams [ ‘ font.sans-serif ‘ ]=’ simhei ‘ #普通显示符号PLT.rcparams 这很像美化。 您可以在plt.style.available中查看选项值。 你会发现其他风格真的很丑陋。 PLT.style.use(ggplot ) )结构数据values1=[ 2.6,2.1,3.4,3,4.1 ] values2=[ 1.7,4.1,3.3,2.6, 3.8]feature ‘团队精神'()设置每个数据点的显示位置,并在雷达图上以角度显示angles=NP.linspace (0,2 * NP.pi, len ) feature )、endpoint=False ) Angles=NP.concaare )的[angles[0]](#绘图fig=plt.figure ) forvaluesin values2)将:#数据向前或向后连接,以便图表中的线条闭合在values=NP.concatenate上[values[0]](#极坐标格式ax=fig.add _ scatenate ) values,’ o-‘,line windows alpha=0. 25 ) #用设置图标上的角度分隔刻度线,并为每个数据点标记ax.set _ theta grids (angles * 180/NP.pi )
但老实说,这个图形不太好看,我个人觉得主要是必须改变背景色。 以前我看到有人在pygal库(最好在pygal库中画世界地图信息)绘图库中画雷达图
import pygal #调用一个名为Radar的类,用于填充雷达图和数据范围radar _ chart=py gal.radar (fill=true,range=(0, 5 )雷达图标题radar_chart.title=’活动前后工作人员状态表示’ #雷达图各顶点含义radar_chart.x_labels=[ ‘个人能力’,’ QC知识’,’问题添加“服务质量意识”的“团队精神”(#2个雷达图区域radar_chart.add (活动前)、[3.2、2.1、3.5、2.8、3] ) radar_chart.add ()
这张图很漂亮,而且是可以交互显示信息的图形。