如何避免网格边缘的散点被截断(不更改网格线)
解决Matplotlib散点网格边缘点被截断的问题
你当前的代码绘制散点网格时,边缘的散点被坐标轴范围截断,要在保留原有网格线等设置的前提下完整显示边缘点,只需调整坐标轴的显示范围,给边缘散点留出足够空间即可:
修改后的代码
import numpy as np import matplotlib.pyplot as plt # Add blue dots for x in np.arange(0, 10, 1): for y in np.arange(0, 10, 1): plt.scatter(x, y, color='blue', s=20) # Adjust the size (s) as needed # Customize plot ax = plt.gca() # 关键修改:扩展坐标轴范围,给边缘散点留出显示空间 ax.set(xlim=(-0.5, 9.5), ylim=(-0.5, 9.5), xlabel='', ylabel='') ax.set_xticks(np.arange(0, 9.01, 1)) ax.set_yticks(np.arange(0, 9.01, 1)) ax.invert_yaxis() ax.set_aspect('equal', adjustable='box') ax.tick_params(left=False, bottom=False) ax.grid() plt.show()
原理说明
- 原代码的
xlim=(0, 9)和ylim=(0, 9)刚好卡散点的坐标值,而散点本身有尺寸,导致边缘点被截断。 - 将坐标轴范围调整为
(-0.5, 9.5)后,既不会改变原有网格线的位置(刻度仍设置为0-9),又能让边缘的散点完整显示在画布内。
内容的提问来源于stack exchange,提问作者Simd
相关产品推荐
相关产品推荐

