使用Matplotlib在图上写入数值

ruarlubt  于 2023-08-06  发布在  其他
关注(0)|答案(3)|浏览(119)

是否可以使用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,等等)。

fd3cxomn

fd3cxomn1#

可以使用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))

ac1kyiln

ac1kyiln2#

使用pyplot.text()import matplotlib.pyplot as plt

import matplotlib.pyplot as plt

x=[1,2,3]
y=[9,8,7]

plt.plot(x,y)
for a,b in zip(x, y): 
    plt.text(a, b, str(b))
plt.show()

字符串

v1l68za4

v1l68za43#

当前使用plt.text()在条形图上显示值的方法是

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y = np.array([5,3,4,2,7,5,4,6,3,2])
#for modifying figsize
fig, ax = plt.subplots(figisize=(8,12))
ax.bar(x,y)
for i, j in zip(x,y):
    ax.text(i,j, str(j), ha='center', va='bottom')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

字符串
希望能帮上忙

相关问题