python - 创建具有命名颜色值的 pcolormesh
问题描述
我想在 Python 中绘制一个 pcolormesh,而不是详细说明每种颜色的数值,就像使用颜色条一样,我想将每个数字映射到一个字符串 - 我只有有限的数值 - 并改为显示它们。比如:0='normal', 1='high', 2='very high',显示的是那些srings而不是数字。
解决方案
一种方法循环遍历单元格并通过字典添加文本。
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as np
mat = np.random.randint(0, 3, (5, 8))
cmap = ListedColormap(['lime', 'orange', 'tomato'])
plt.pcolormesh(np.arange(-0.5, mat.shape[1]), np.arange(-0.5, mat.shape[0]), mat, cmap=cmap)
color_dict = {0: 'normal', 1: 'high', 2: 'very\nhigh'}
for i in range(mat.shape[0]):
for j in range(mat.shape[1]):
plt.text(j, i, color_dict[mat[i, j]], ha='center', va='center')
plt.show()
推荐阅读
- r - 更改多个列表的列表元素名称
- java - java.lang.StackOverflowError 但我没有循环任何东西
- spring-security - 如何允许匿名访问端点
- kubernetes - 如何使用 helm 从目录创建 ConfigMap
- r - 按数据框中的行名对数据进行排序
- html - HTML 页面链接奇怪的行为
- javascript - 从 Firestore 获取字段并使用它来更新另一个集合
- php - 无法获取令牌...站点无法访问
- ios - UIButton 中的 ActivityIndicatorView 居中问题
- python - 用空格分割行,但保留反引号内的字符串