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

问题描述

因此,我正在尝试使用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,**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。我知道自从帖子更新以来已经过去了很多年,但是我仍然想尝试是否可以在此方面获得帮助。

解决方法

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