把一些文字放到python图上

时间:2016-03-29 03:21:51

标签: python matplotlib

我正在尝试使用python进行关联图,所以我从这个基本示例开始

import numpy as np
import matplotlib.pyplot as plt

image=np.random.rand(10,10)
plt.imshow(image)
plt.colorbar()
plt.show()
好吧,这个脚本给我一个像这样的图像

python plot example

所以下一步是放我的数据集,而不是随机矩阵,我知道,但我想在这个图中放一些轴或文字,并得到像这样的图像

image with axis

这是一个非常漂亮的图像使用paint(lol),但有人可以说我需要遵循什么样的方式做thik请(如何在谷歌搜索)。

在发布之前我想在标签中,但我认为我只能为每个轴分配一个标签

欢呼声

1 个答案:

答案 0 :(得分:1)

正如@tcaswell在评论中所说,您要使用的功能是注释,documentation can be found here

我在下面使用您的代码给出了一个示例:

import numpy as np
import matplotlib.pyplot as plt

def annotate_axes(x1,y1,x2,y2,x3,y3,text):                       
    ax.annotate('', xy=(x1, y1),xytext=(x2,y2),             #draws an arrow from one set of coordinates to the other
            arrowprops=dict(arrowstyle='<->'),              #sets style of arrow
            annotation_clip=False)                          #This enables the arrow to be outside of the plot

    ax.annotate(text,xy=(0,0),xytext=(x3,y3),               #Adds another annotation for the text
                annotation_clip=False)


fig, ax = plt.subplots()
image=np.random.rand(10,10)
plt.imshow(image)
plt.colorbar()

#annotate x-axis
annotate_axes(-0.5,10,4.5,10,2.5,10.5,'A')       # changing these changes the position of the arrow and the text
annotate_axes(5,10,9.5,10,7.5,10.5,'B')

#annotate y-axis
annotate_axes(-1,0,-1,4,-1.5,2,'A')
annotate_axes(-1,4.5,-1,9.5,-1.5,7.5,'B')

plt.show()

这给出了如下所示的图像:

enter image description here