Python雷达图连接第一个和最后一个点

时间:2018-01-23 10:16:35

标签: python matplotlib radar-chart

我正在尝试绘制雷达图。在获得第一个和最后一个点加入时,我遇到了麻烦。目前结果如下:

radar plot

点50似乎没有加入,我无法理解为什么。

我在一起连接点,我以为我已经确定他们会加入这个代码:

t1=np.concatenate([l1,r1,l2])
t1 += t1[:0]
theta += theta[:0]

然而,这会返回消息ValueError: operands could not be broadcast together with shapes (101,) (0,) (101,)

我用来绘制的代码是:

fig = plt.figure()

ax = fig.add_subplot(1, 1, 1, projection='radar')

ax.plot(theta, t1, color='r')

ax.set_varlabels(labels)
for label in ax.get_xticklabels()[::2]:
    label.set_visible(False)
plt.savefig("radar.png", dpi=100)

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我可举一个例子。根据我的理解,你有类似的问题(但规模较大)如下,我举了两个例子。

  • 其他说明:plot([x1,x2],[y1,y2])将绘制(x1,y1),并绘制一条将其连接到点(x2,y2)的行。因此,您必须按照此订单的要点:[x1, x2, x3, ...., xn, x1][y1, y2, y3, ...., yn, y1]来创建“循环”。

这可以吗?

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure();
ax = fig.add_subplot(1, 1, 1, projection='polar');

theta1 = [0, 0.5*np.pi, 0];
r1 = [1, 1, 0];

ax.plot(theta1, r1, color='r');

plt.show();

enter image description here

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure();
ax = fig.add_subplot(1, 1, 1, projection='polar');

theta1 = [0, 0.5*np.pi, 0, 0];
r1 = [1, 1, 0, 1];

ax.plot(theta1, r1, color='r');

plt.show();

enter image description here