先确认下,如果题主采用的是直角坐标系,这个 (2,0) 为什么会变为“原点”,还是你想说的是 (0,2)?我就假设你是想说(0,2)好了。那么下一个问题是:为啥你要把“原点”放到 (0,2)?
你可能会说:因为对 的所有区域内,都没有有效点了呀。所以你的判断依据其实是:该点集的x/y方向上的最小值向下取整,作为原点。可以自定义这个边界值写一个函数来实现
import math def get_lim(dataset): return (math.floor(min(dataset['x']), math.floor(min(dataset['y']))
至于这个为什么对不齐,因为matplotlib本身会留一个边界,让图表显示的美观一点。这个在默认的设置里面我好像没有找到,不过,就算找到了,你一样要用一个函数来自定义边界。因为,你在这个例子里可以定义 (0, 2),但是你自己也说了XY范围不定,那我(程序)怎么知道你下个数据集的边界要放在哪里?
顺带,除了plt.xlim()
来设置以外,也可以对Axes
对象用Axes.axis([x0, y0, x1, y1])
来实现。
当然了,还有很多其他的办法来实现。比如0这个位置之所以有网格,是因为0这个位置有一个xticks
和xtickslabels
对象,而所谓的xy轴,其实是Spine
对象 。你也可以人为设置xticks
和Spine
出现的位置,并令它们重合即可。