首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python - matplotlib polarplot问题- "posx和posy应该是有限值“

Python - matplotlib polarplot问题- "posx和posy应该是有限值“
EN

Stack Overflow用户
提问于 2018-07-31 17:56:03
回答 1查看 2.8K关注 0票数 3

在切换到新系统后,我遇到了一个奇怪的matplotlib错误。我正在尝试创建一个r轴反转的极地图。因此,在我的例子中,运行从90到0。这在我之前的系统上工作得很好,只有最小的工作示例:

代码语言:javascript
复制
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()

在我的新系统上运行会产生以下结果

代码语言:javascript
复制
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)可以正常工作)。

我的系统设置是

  • Debian 4.9.110-1 (2018-07-05) x86_64 Debian 2.2.2

旧的系统非常相似,我不能艰难地恢复使用过的版本。这是较新版本中的某个已知错误吗?我找不到任何与极地图相关的错误消息。

EN

回答 1

Stack Overflow用户

发布于 2018-08-01 08:26:14

我现在做了一个相当草率的解决方法,将标签的范围改为从90到0。

代码语言:javascript
复制
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才能正确显示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51610595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档