如何在matplotlib clormap中为单个方块指定自定义颜色?

wpx232ag  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(169)

如何将单个方块的颜色设置为特定的颜色?这是我所拥有的:

  1. fig, ax = plt.subplots()
  2. ax.matshow(quality_matrix, cmap=plt.cm.Blues)
  3. for i in range(len(quality_matrix)):
  4. for j in range(len(quality_matrix)):
  5. ax.text(i, j, str(quality_matrix[j][i]), va='center', ha='center')

这是一个色彩Map表。我希望能够这样做:

  1. ax.setcolor(0, 2, 'black')
  2. ax.setcolor(1, 1, 'black')
  3. ax.setcolor(2, 0, 'black')
  4. ax.setcolor(4, 3, 'red')
plupiseo

plupiseo1#

以下方法将在指定位置绘制彩色方块:

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. def set_matshow_cell_color(ax, i, j, color):
  4. ax.add_patch(plt.Rectangle((i - 0.5, j - 0.5), 1, 1, color=color))
  5. quality_matrix = np.random.rand(5, 8).round(2)
  6. fig, ax = plt.subplots()
  7. mat = ax.matshow(quality_matrix, cmap=plt.cm.Blues)
  8. for i in range(quality_matrix.shape[1]):
  9. for j in range(quality_matrix.shape[0]):
  10. ax.text(i, j, str(quality_matrix[j][i]), va='center', ha='center',
  11. color='white' if quality_matrix[j][i] > 0.3 else 'black')
  12. set_matshow_cell_color(ax, 0, 2, 'black')
  13. set_matshow_cell_color(ax, 1, 1, 'black')
  14. set_matshow_cell_color(ax, 2, 0, 'black')
  15. set_matshow_cell_color(ax, 4, 3, 'red')
  16. plt.show()

展开查看全部

相关问题