Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从matplotlib中的“ax”返回“ScalarMappable”?_Python_Python 3.x_Matplotlib - Fatal编程技术网

Python 如何从matplotlib中的“ax”返回“ScalarMappable”?

Python 如何从matplotlib中的“ax”返回“ScalarMappable”?,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,Figure.colorbar(mappable=…)有一个参数用于接受可着色项目,例如AxesImage、ContourSet等。考虑到这一点,通常的用法如下: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable ax = plt.subplot() im = ax.imshow(np.arange(100).reshape((1

Figure.colorbar(mappable=…)
有一个参数用于接受可着色项目,例如
AxesImage
ContourSet
等。考虑到这一点,通常的用法如下:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable


ax = plt.subplot()
im = ax.imshow(np.arange(100).reshape((10, 10)))

# create an axes on the right side of ax. The width of cax will be 5%
# of ax and the padding between cax and ax will be fixed at 0.05 inch.
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)

plt.colorbar(im, cax=cax)

在上面的示例中,可映射的
im
imshow()
返回,在大多数情况下我认为这很好。我的问题是在实现
ax.imshow()
ax.pcolormesh()
后,如何直接从
ax
返回mappable,如下所示

ax.imshow(np.arange(100).reshape((10, 10)))
def get_mappable(ax):
    pass

mappable = get_mappable(ax)
ax.images
不是我想要的,因为这只是一种映射类型

我回顾了
plt.colorbar()
中的一些源代码,它使用了
gci()
(),但我尝试了,它返回了
None
,我想我一定错过了一些重要的东西。请给我一些指导,非常感谢

编辑
我找到了答案,但它与
ax.images
方法非常相似。

一个可能的障碍是
ax
可以有多个与ScalarMapable兼容的元素。通常,访问ScalarMapable的原因是创建一个颜色条。当有多个这样的元素时,该函数应该指向什么?全部归还(可能是一个巨大的列表)?或者试着找出它们是否会导致相同的色条?或者…?嗨,是的,但是我们可以返回当前可映射的。gcf()中的类似概念。似乎在源代码中,他们使用gci(),但我尝试了,它没有返回任何。。。请我们使用gci(),我想可以。谢谢你的回复。