我正在尝试绘制雷达图。在获得第一个和最后一个点加入时,我遇到了麻烦。目前结果如下:
点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)
如何解决此错误?
答案 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();
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();