用Matplotlib在绘图上写数值

发布于 2021-01-29 18:11:24

使用Matplotlib,是否可以在图形上打印每个点的值?

例如,如果我有:

x = numpy.range(0,10)
y = numpy.array([5,3,4,2,7,5,4,6,3,2])
pyplot.plot(x,y)

如何在绘图上显示y值(例如,在(0,5)点附近打印5,在(1,3)点附近打印3,等等)?

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用annotate命令将文本注释放置在所需的任何x和y值处。要将它们准确地放置在数据点上,您可以执行此操作

    import numpy
    from matplotlib import pyplot
    
    x = numpy.arange(10)
    y = numpy.array([5,3,4,2,7,5,4,6,3,2])
    
    fig = pyplot.figure()
    ax = fig.add_subplot(111)
    ax.set_ylim(0,10)
    pyplot.plot(x,y)
    for i,j in zip(x,y):
        ax.annotate(str(j),xy=(i,j))
    
    pyplot.show()
    

    如果您希望注释稍微偏移一点,则可以将annotate行更改为

    ax.annotate(str(j),xy=(i,j+0.5))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看