我想在matplotlib的矩阵图中绘制一条线,以突出显示矩阵中的特定条目。如何在与矩阵索引一致的位置创建一条线?
plt.imshow(matrix, cmap = cm.Greys_r)
ax2 = plt.axes([0,0,1,1], axisbg=(1,1,1,0))
x,y = numpy.array([[0.05, 0.1, 0.9], [0.05, 0.5, 0.9]])
line = lines.Line2D(x, y, lw=5., color='r', alpha=0.4)
line.set_clip_on(False)
ax2.add_line(line)
plt.show()
它显示了整个数字的一条线。如何将全局坐标x,y映射到矩阵图坐标? 感谢
答案 0 :(得分:2)
以下是一个示例,您可以将线条添加到图像的轴中:
from matplotlib import pyplot as plt
import numpy as np
matrix = np.random.rand(100, 200)
matrix[30, 50] = 5.0
matrix[80, 150] = 5.0
plt.imshow(matrix, cmap = cm.Greys_r)
ax = plt.gca()
x,y = numpy.array([[50, 150], [30, 80]])
line = plt.Line2D(x, y, lw=5., color='r', alpha=0.4)
line.set_clip_on(False)
ax.add_line(line)
plt.show()
输出: