我正在try 绘制散点图,但我想绘制的不是点、三角形或其他符号,而是数字.例如,使用以下几点:

centroidCoords = [Point(7.210123936676805, -0.0014481952154823),
                  Point(5.817327756517152, -1.0513260084561042),
                  Point(5.603133733696165, -2.7765635631249412),
                  Point(4.500525247710033, -0.8659667639805515),
                  Point(3.9999999999880367, -2.089987631283091),

我可以在散点图中绘制如下图:

# xs = [point.x for point in centroidCoords]
# ys = [point.y for point in centroidCoords]
# plt.scatter(xs, ys)

但我想知道我是否能画出数字,而不是那些小圆点.第一个点可以是1,第二个点可以是2,依此类推.我try 使用Zip这样分配数字:

num_label = range(0,len(centroidCoords),1)
numberedCentroids = zip(centroidCoords, num_label)
print(numberedCentroids)

但它并没有像我想象的那样打印或情节.所有我想要的是一个在点1坐标的数字1,在点2的坐标的数字2,等等.最终我会在后面添加多边形,这看起来就像是那些"给数字上色"的东西之一.

我还是个新手,所以如果有任何帮助,我将不胜感激!

推荐答案

你可以在任何你想要的地方打印文本,但是你必须通过拨打.xlim().ylim()来手动设置图像的限制

import numpy as np
import matplotlib.pyplot as plt

centroidCoords = [(7.210123936676805, -0.0014481952154823),
                  (5.817327756517152, -1.0513260084561042),
                  (5.603133733696165, -2.7765635631249412),
                  (4.500525247710033, -0.8659667639805515),
                  (3.9999999999880367, -2.089987631283091)]

textCoord = [f"{x:.2f} {y:.2f}" for x, y in centroidCoords]
x, y = np.array(centroidCoords).T

for col, row, t in zip(x, y, textCoord):
    plt.text(col, row, t, fontsize=10, color="red")
plt.xlim(min(x)-1, max(x)+1)
plt.ylim(min(y)-1, max(y)+1)
plt.show()

enter image description here

Python相关问答推荐

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

Matlab中是否有Python的f-字符串等效物

难以在Manim中正确定位对象

通过pandas向每个非空单元格添加子字符串

使用setuptools pyproject.toml和自定义目录树构建PyPi包

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

Python列表不会在条件while循环中正确随机化'

名为__main__. py的Python模块在导入时不运行'

以逻辑方式获取自己的pyproject.toml依赖项

搜索按钮不工作,Python tkinter

导入错误:无法导入名称';操作';

Gunicorn无法启动Flask应用,因为无法将应用解析为属性名或函数调用.'"'' "

为用户输入的整数查找根/幂整数对的Python练习

在任何要保留的字段中添加引号的文件,就像在Pandas 中一样

如何在python tkinter中绑定键盘上的另一个回车?

是否需要依赖反转来确保呼叫方和被呼叫方之间的分离?

如何在Python中画一个只能在对角线内裁剪的圆?

将时间序列附加到数据帧

生产者/消费者-Queue.get by list