Matplotlib:我如何知道正在使用哪个颜色映射?

7

我尝试了许多调色板,包括使用matplotlib和seaborn制作自己的调色板。

现在我想知道我正在使用哪种调色板。我该怎么做?是否有类似于matplotlib.whichColormap的命令呢?

1个回答

6

通常情况下,您无需查找正在使用的颜色映射,因为这是由您自己定义的。也就是说,在调用时:

plt.imshow(..., cmap="viridis")

你已经知道你正在使用 "viridis"。

如果你仍然觉得从现有的ScalarMappable获取信息会很有用,你可以使用get_cmap()及其name属性:

import matplotlib.pyplot as plt
import numpy as np

a = np.random.rand(4,5)
fig, ax = plt.subplots()
im = ax.imshow(a, cmap="viridis")

cm = im.get_cmap()
print(cm.name)  # prints viridis

谢谢。然而,如果我使用matplotlib.colors.ListedColormap(['red', 'gold', 'limegreen']),这种方法就不起作用了。因为当我这样做时,我只会得到类似于<matplotlib.colors.ListedColormap at 0x8b90fd0>的东西,这对我来说毫无意义。 - Euler_Salter
当然,但是你希望得到什么呢? - ImportanceOfBeingErnest
比如实际列表或其他对象,可以包含信息['red'、'gold'、'limegreen'] - Euler_Salter
1
<matplotlib.colors.ListedColormap at 0x8b90fd0> 是一个对象。你要的除了这个对象还有什么对象?你可以通过 cm.colors 获取颜色,但由于大多数内置的颜色映射具有256种颜色,因此你将得到一个非常长的列表。 - ImportanceOfBeingErnest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接