python - 寻找 pyplot.plot() 的标记文本选项

标签 python text matplotlib plot markers

我正在寻找一种将数字或文本插入标记的方法。 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_xlimset_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()

这是它的样子:

Running the suggested code above gives a figure like this.

关于python - 寻找 pyplot.plot() 的标记文本选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27577668/

相关文章:

python - 如何删除 python 中字符串的最后一个字符?

python - 句子结构识别 - spacy

c++ - 在文件中写入新行字符

java - 我将如何从 java 程序打印文本? ( java )

python - 如何在不拉伸(stretch)图像的情况下更改 matplotlib 中 imshow 的比例?

php - 如何将可执行文件与库文件分开?

python - 将正确的两个字符(如果有的话)设置为大写?

python - 使用机器学习预测 NA(缺失值)

python - 创建一个条形图,其条形是相对于最大值或最小值的填充进度百分比

python - IPython 笔记本 : How to combine HTML output and matplotlib figures?