在切换到新系统后,我遇到了一个奇怪的matplotlib
错误。我正在尝试创建一个r轴反转的极地图。因此,在我的例子中,运行从90到0。这在我之前的系统上工作得很好,只有最小的工作示例:
import matplotlib.pyplot as plt
from random import randint
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
plt.scatter([randint(0, 360)], [randint(0, 90)])
ax.set_rlim(90, 0)
ax.set_theta_zero_location('N')
ax.set_theta_direction('clockwise')
plt.show()
在我的新系统上运行会产生以下结果
posx and posy should be finite values
posx and posy should be finite values
/usr/local/lib/python3.5/dist-packages/numpy/core/fromnumeric.py:83: RuntimeWarning: invalid value encountered in reduce
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
posx and posy should be finite values
posx and posy should be finite values
posx and posy should be finite values
到目前为止,我已经发现错误是由包含ax.set_rlim(90, 0)
的行中的反转r轴触发的(使用ax.set_rlim(0, 90)
可以正常工作)。
我的系统设置是
旧的系统非常相似,我不能艰难地恢复使用过的版本。这是较新版本中的某个已知错误吗?我找不到任何与极地图相关的错误消息。
发布于 2018-08-01 08:26:14
我现在做了一个相当草率的解决方法,将标签的范围改为从90到0。
ticklabels = ax.get_yticklabels()
labels = range(80, 0, -10)
for i in range(0, len(labels)):
ticklabels[i] = str(labels[i])
ax.set_yticklabels(ticklabels)
所有的半径值也必须相应地调整。在这种情况下为90 - r_value才能正确显示。
https://stackoverflow.com/questions/51610595
复制相似问题