No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a contour set (with contourf).
时间: 2024-02-05 22:03:32 浏览: 300
python可视化 matplotlib画图使用colorbar工具自定义颜色
5星 · 资源好评率100%
这个错误通常是因为在添加色条时没有正确指定 `mappable` 参数,或者指定的 `mappable` 参数不是可映射的对象(例如,不是 `imshow` 或 `contourf` 函数返回的对象)。在 Matplotlib 中,色条是通过映射某种数据到颜色的方式创建的,因此需要指定一个可映射的对象。
例如,在使用 `scatter` 函数绘制散点图时,可以将 `c` 参数设置为数据值,然后将 `cmap` 参数设置为颜色映射对象。这样,就可以通过传递 `c` 参数指定的数据值和 `cmap` 参数指定的颜色映射对象来创建可映射的对象。在添加色条时,将该可映射的对象传递给 `mappable` 参数即可。示例代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(50)
y = np.random.rand(50)
z = np.random.rand(50)
fig, ax = plt.subplots()
sc = ax.scatter(x, y, c=z, cmap='viridis')
fig.colorbar(sc)
plt.show()
```
在上述代码中,我们使用 `scatter` 函数绘制了一个散点图,并将 `c` 参数设置为随机生成的数据 `z`,`cmap` 参数设置为 `viridis` 颜色映射。接着,我们使用 `colorbar` 函数添加了一个色条,并将 `sc` 参数设置为 `scatter` 函数返回的可映射对象。这样就可以成功地创建一个色条并显示出来。如果不指定 `mappable` 参数,就会出现 `No mappable was found to use for colorbar creation` 的错误。
阅读全文