matplotlib “添加可Map到轴”的含义

tzdcorbm  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(191)

最近我运行了一个旧代码,Matplotlib告诉我

MatplotlibDeprecationWarning:
Unable to determine Axes to steal space for Colorbar.
Using gca(), but will raise in the future.
Either provide the *cax* argument to use as the Axes for the Colorbar,
provide the *ax* argument to steal space from it,
=============================
or add *mappable* to an Axes.
=============================

好吧,我理解这个问题以及caxax解决方案--我已经修复了我的旧代码--但我不理解“将mappable添加到Axes”部分,至少在下面的MWE上下文中是这样。
你能**解释一下“add mappable to an Axes”**的意思吗?

import matplotlib.pyplot as plt
from matplotlib.cm import ScalarMappable
import numpy as np

x = np.linspace(0, 1, 201)
sm = ScalarMappable(norm=plt.Normalize(0.5, 4.5), cmap='cool_r')
for i in range(4):
    plt.plot(x, x+(1-x)*np.sin(np.pi*i*x), color=sm.to_rgba(i+1))
cb = plt.colorbar(sm)
cb.set_ticks((1,2,3,4))
plt.tight_layout()
plt.show()

xqkwcwgp

xqkwcwgp1#

据我所知,“可Map”是一种图形元素,通常是类似图像的东西或一组散点,通过将一系列给定值通过范数和颜色Map表Map到一系列颜色来着色。所以,这里我假设这意味着,如果这样一个“可Map”的图形元素,作为plt.colorbar()的参数,并且该元素也属于给定的子图,matplotlib可以找出从哪个子图窃取空间。另一方面,如果您创建这样一个图形元素而没有将其添加到某个图中,则matplotlib仍然存在疑问。

相关问题