我正在寻找一种将数字或文本插入标记的方法。 matplotlib.pyplot.plot(*args, **kwargs)
文档中没有相关内容。
默认缩放级别将标记放置在边缘,从而减少了用于刻写文本的可用空间。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4 ,5]
y = [1, 4, 9, 6, 10]
plt.plot(x, y, 'ro',markersize=23)
plt.show()
最佳答案
正如 jkalden 所建议的,annotate
可以解决您的问题。该函数的 xy
参数让您可以定位文本,以便您可以将它放在标记的位置上。
关于您的“缩放”问题,matplotlib
默认情况下会在您绘制的最小值和最大值之间拉伸(stretch)框架。它会导致您的外部标记的中心位于图形的最边缘,并且只有一半的标记可见。要覆盖默认的 x 和 y 限制,您可以使用 set_xlim
和 set_ylim
。这里定义了一个偏移量来让你控制边缘空间。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4 ,5]
y = [1, 4, 9, 6, 10]
fig, ax = plt.subplots()
# instanciate a figure and ax object
# annotate is a method that belongs to axes
ax.plot(x, y, 'ro',markersize=23)
## controls the extent of the plot.
offset = 1.0
ax.set_xlim(min(x)-offset, max(x)+ offset)
ax.set_ylim(min(y)-offset, max(y)+ offset)
# loop through each x,y pair
for i,j in zip(x,y):
corr = -0.05 # adds a little correction to put annotation in marker's centrum
ax.annotate(str(j), xy=(i + corr, j + corr))
plt.show()
这是它的样子:
关于python - 寻找 pyplot.plot() 的标记文本选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27577668/