python - matplotlib imshow 为每种颜色添加标签并将它们放入图例中

标签 python matplotlib label legend imshow

<分区>

我想在 matplotlib 中显示如下图(从 here 复制)

enter image description here

但是我想标记每种颜色并将它们放在旁边的图例上,请问有什么办法吗?

最佳答案

我想只有在矩阵中的所有值不多的情况下才有意义。因此,假设您的矩阵中有 8 个不同的值。然后我们可以为他们每个人创建一个各自颜色的代理艺术家,并将他们放入这样的图例中

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np

# create some data
data = np.random.randint(0, 8, (5,5))
# get the unique values from data
# i.e. a sorted list of all values in data
values = np.unique(data.ravel())

plt.figure(figsize=(8,4))
im = plt.imshow(data, interpolation='none')

# get the colors of the values, according to the 
# colormap used by imshow
colors = [ im.cmap(im.norm(value)) for value in values]
# create a patch (proxy artist) for every color 
patches = [ mpatches.Patch(color=colors[i], label="Level {l}".format(l=values[i]) ) for i in range(len(values)) ]
# put those patched as legend-handles into the legend
plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0. )

plt.grid(True)
plt.show()

enter image description here

关于python - matplotlib imshow 为每种颜色添加标签并将它们放入图例中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40662475/

相关文章:

python - 如何根据另一列的值在 Pandas 数据框列中创建新值

python - 如何使用正则表达式在我的字符串中找到这个单词 'অশুভ' ?

python - 为什么 class.__weakref__ 不是 None,而 instance.__weakref__ 是 None?

python - 批量保存数据到图像: need speedup

iphone - 如何为 iOS 应用程序设置 UILabel 的左上角对齐?

css - 使用 css 的标签定位不起作用

javascript - IE8标签通过javascript更新问题

python - 在asyncio中使用run_in_executor时,事件循环是否在主线程中执行?

python - 如何在 matplotlib 中停止动画?

python - 如何使用 set_cmap 设置 yt.SlicePlot 的颜色条限制?