首页 > 解决方案 > 没有 xtick 和 ytick 显示 matplotlib 面向对象

问题描述

以下代码执行绘图,但 x 或 y 轴上没有显示刻度,我不明白为什么。

    fig=plt.figure()
    ax=fig.add_axes([0,0,1,1])
    ax.set_title("test plot")
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.plot([0,1,2,3,4],[4,5,6,7,8])
    plt.show()

在此处输入图像描述

为什么不自动添加?

我还使用 matplotlib 的面向对象方法复制了一些其他示例,并且遇到了同样的问题。

标签: pythonmatplotlib

解决方案


你的轴实际上是“在那里”,它们只是在图形的极限处。当您调用add_axes矩形时,您给它的形式是[left, bottom, width, height]。您将其(0, 0)作为起点(左下角),宽度和高度为 1(即图形的全宽和高度)。您可以使用坐标来查看会发生什么,例如

ax = fig.add_axes([0.2,0.2,0.6,0.6])

在此处输入图像描述

尽管

ax = fig.add_axes([0.1,0.1,0.4,0.4])

在此处输入图像描述


推荐阅读