如何使用Python matplotlib在XY坐标轴上绘制十字排列的编号点
问题修正方案
- 标注内容错误:原有代码循环中输出的是x坐标值而非点的顺序编号,不符合十字编号的要求
- 变量冲突:循环迭代变量命名为
x/y,和外层存储坐标的列表变量重名,会意外覆盖原列表 - 手动录入坐标效率低,无法快速生成更多十字点
修正后可运行代码
import matplotlib.pyplot as plt # 自定义要生成的十字层数,设为n就会生成到(0,n)/(n,0)/(0,-n)/(-n,0)的位置,共4n个点 n = 5 x = [] y = [] for i in range(1, n+1): # 按规则依次添加四个方向的点:上(0,i)、右(i,0)、下(0,-i)、左(-i,0) x.extend([0, i, 0, -i]) y.extend([i, 0, -i, 0]) # 绘制黑色点 plt.plot(x, y, "o", color="black") plt.xlabel('x') plt.ylabel('y') # 标注从1开始的顺序编号 for idx, (coord_x, coord_y) in enumerate(zip(x, y), start=1): plt.text(coord_x, coord_y, str(idx), color="red", fontsize=12) plt.title('十字编号点图') # 设置坐标轴等比例,避免十字出现变形 plt.axis('equal') plt.show()
效果说明
生成的点严格遵循要求的编号规则:1对应(0,1)、2对应(1,0)、3对应(0,-1)、4对应(-1,0)、5对应(0,2)以此类推,调整参数n即可快速生成更多十字点,不需要手动修改坐标列表。
内容的提问来源于stack exchange,提问作者Publius
相关产品推荐
相关产品推荐

