自定义Matplotlib投影立体图:Schmidt投影

时间:2020-10-08 14:17:42

标签: python-3.x numpy matplotlib projection

因此,我正在尝试使用this post中显示的相同代码(包括其最新更新)来绘制数据。但是,当我运行代码以查看投影网格时,出现此错误:

Traceback (most recent call last):

File "C:\Users\Stefano\Documents\Python files\schmidt_projection.py", line 474, in <module>
    plt.subplot(111, projection="SchmidtProjection")

  File "C:\Users\Stefano\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 1126, in subplot
    ax = fig.add_subplot(*args, **kwargs)

  File "C:\Users\Stefano\anaconda3\lib\site-packages\matplotlib\figure.py", line 1402, in add_subplot
    ax = subplot_class_factory(projection_class)(self, *args, **kwargs)

  File "C:\Users\Stefano\anaconda3\lib\site-packages\matplotlib\axes\_subplots.py", line 42, in __init__
    self._axes_class.__init__(self, fig, self.figbox, **kwargs)

  File "C:\Users\Stefano\Documents\Python files\schmidt_projection.py", line 26, in __init__
    Axes.__init__(self, *args, **kwargs)

  File "C:\Users\Stefano\anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 511, in __init__
    self.cla()

  File "C:\Users\Stefano\Documents\Python files\schmidt_projection.py", line 43, in cla
    self.set_longitude_grid(10)

  File "C:\Users\Stefano\Documents\Python files\schmidt_projection.py", line 309, in set_longitude_grid
    np.linspace(-np.pi, np.pi, number, True)[1:-1]))

  File "<__array_function__ internals>", line 6, in linspace

  File "C:\Users\Stefano\anaconda3\lib\site-packages\numpy\core\function_base.py", line 113, in linspace
    num = operator.index(num)

TypeError: 'float' object cannot be interpreted as an integer

有人知道为什么以及如何解决此问题吗?我在这方面相对较新,我正在尝试学习尽可能多的知识,但我不知道为什么会发生此错误。我将非常感谢您的帮助。谢谢

p.s。我知道自从帖子更新以来已经过去了很多年,但是我仍然想尝试是否可以在此方面获得帮助。

1 个答案:

答案 0 :(得分:0)

我没有遍历代码,但是我猜测您正在尝试使用num变量作为索引。索引(数组或其他)通常是整数。您的num可能会被解释为浮点数,因此在将其用作索引时,也许应该将其转换为int(num)的整数。

相关问题