在子图中使用雷达图

时间:2016-09-27 08:11:16

标签: matplotlib subplot radar-chart

我使用此代码生成雷达图表:Radar chart with multiple scales on multiple axes;现在我想将此图表放在2x1数字设置的右下角。使用以下代码:

fig = pl.figure(figsize=(5, 5))

titles = ['A','B','C','D','E','F']
parameters_list = ['','2','','4','','6','','8','','10']
labels = [parameters_list, parameters_list, parameters_list,parameters_list,parameters_list,parameters_list]
radar = Radar(fig, titles, labels)

pl.subplot(2, 1, 1)
radar.plot([1, 3, 2, 5, 4, 9],  "-", lw=2, color="r", alpha=0.4, label="first")
pl.subplot(2, 1, 2)
radar.plot([3, 6, 4, 1, 1, 2],  "-", lw=2, color="y", alpha=0.4, label="second")

这会产生两个空白框,而我想得到两个雷达图,一个在另一个之上(见下面的链接)。

[1]:http://i.stack.imgur.com/oaXzf.png - 两个空白框

如果我尝试创建单个雷达图表,则代码可以正常工作(请参阅下面的代码和链接):

fig = pl.figure(figsize=(5, 5))
titles = ['A','B','C','D','E','F']
parameters_list = ['','2','','4','','6','','8','','10']
labels = [parameters_list, parameters_list, parameters_list,parameters_list,parameters_list,parameters_list]
radar = Radar(fig, titles, labels)

radar.plot([1, 3, 2, 5, 4, 9],  "-", lw=2, color="r", alpha=0.4, label="first")
radar.ax.legend()

[2]:http://i.stack.imgur.com/LnL6e.png - 雷达图正常工作

如何将两张雷达图一个放在另一个上面?或者如何在子图中插入雷达,而其他子图显示不同类型的图表?

1 个答案:

答案 0 :(得分:0)

由于您使用的是Radar chart with multiple scales on multiple axes中HYRY答案中给出的Radar课程,因此以下是使用该解决方案的解决方案:

fig = pl.figure(figsize=(5, 5))

titles = ['A','B','C','D','E','F']
parameters_list = ['','2','','4','','6','','8','','10']
labels = [parameters_list, parameters_list, parameters_list,parameters_list,parameters_list,parameters_list]

radar = Radar(fig, titles, labels, rect=[0.0, 0.55, 0.5, 0.45])
radar.plot([1, 3, 2, 5, 4, 9],  "-", lw=2, color="r", alpha=0.4, label="first")

radar = Radar(fig, titles, labels, rect=[0.0, 0.0, 0.5, 0.45])
radar.plot([3, 6, 4, 1, 1, 2],  "-", lw=2, color="y", alpha=0.4, label="second")

结果:

enter image description here

我在该类中使用了可选的rect参数,该参数提供了[left, bottom, width, height]相对于完整数字的大小。

这样做之后,我不知道为什么你选择使用一个用于显示多个音阶的类,因为你似乎只有一个音阶(在labels数组中重复了6次),所以我必须假设你有充分的理由。