首页 > 解决方案 > Matplotlib - 在带有负和正 y 轴的折线图中提高刻度线

问题描述

我正在使用 matplotlib 绘制一系列 5 个图。但是,我希望每个图的刻度线在 y 轴上为 0,而不是在图的底部(y 轴上的负数)。在所附图片中,您可以看到 x 轴刻度线有点浮动在 0 以下。

我目前正在通过物理调用将这条线绘制在 y 轴上的 0 处: ax[i].plot(np.zeros(300), linewidth=1, color='black')但是我意识到这可能不是最好的方法,而且我缺少一些东西来提高 x 轴及其刻度线而无需设置它是隐形的吗?

此命令是否有等效的方法将 x 轴刻度线设置到中间?ax.xaxis.set_ticks_position('middle')不幸的是,看起来只有“顶部”或“底部”

谢谢你的帮助!

    to_plot : A Numpy array of shape: (5, 300)


    fig, ax = plt.subplots(5, 1, figsize=(12, 7))
    plt.tight_layout()
    plt.margins(0)
    # ax[axis].set_ylabel("Attention Score (a.u.)", family='Arial', fontsize=15)
    # ax[axis].set_xlabel("Timestep", family='Arial', fontsize=15)
    for axis in range(5):
        ax[axis].spines['top'].set_visible(False)
        ax[axis].spines['right'].set_visible(False)
        ax[axis].spines['bottom'].set_visible(False)
        ax[axis].set_ylim([-0.004, 0.006])
        ax[axis].set_xlim([0, 300])

    for i, line in enumerate(to_plot):
        ax[i].plot(np.zeros(len(line)), linewidth=1, color='black')
        ax[i].plot(line, linewidth=1)
    plt.show()

到目前为止我所取得的成就的插图

标签: pythonnumpymatplotlibplot

解决方案


推荐阅读