python - Matplotlib - 在边缘一致地显示或隐藏网格线

标签 python matplotlib subplot

我想渲染一个图(使用 subplots() 创建,顶部和右侧没有边缘,如下所示:

ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
这实际上禁用了边界边缘,只是为了显示,在顶部我可以看到一个主要的网格线,而在右侧我看不到:
Example plot
我可以在两边或两边都有网格线,但这只是草率。我也不想更改轴限制。是否可以使显示的网格线在边缘上保持一致?

最佳答案

由于某些奇怪的原因,不确定这是一个错误还是预期的行为。
一种解决方法是关闭最后一个 x 网格线的剪辑:

ax.xaxis.get_gridlines()[-1].set_clip_on(False)
例子:
import matplotlib.pyplot as plt

fig, axes = plt.subplots(2)

def plotit(ax, clip, title):
    ax.plot()
    ax.grid(b=True, which='major', color='blue', linestyle=':')
    ax.set_xlim(0,1)
    ax.set_ylim(0,1)
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    if(not clip):
        ax.xaxis.get_gridlines()[-1].set_clip_on(clip)
    ax.set_title(title)

plotit(axes[0], True, 'default (with clipping)')
plotit(axes[1], False, 'set_clip_on(False)')
enter image description here

关于python - Matplotlib - 在边缘一致地显示或隐藏网格线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62508989/

相关文章:

python - 如何在 tkinter Canvas 中嵌入 matplotlib 图形时获得 (3d) 交互性

python - 排序不适用于我的热图

python - 删除 Matplotlib、Python 中某些子图的 y 轴刻度标签

python - 禁止(CSRF token 丢失或不正确)Django 错误

Python 正则表达式 : using or statement

python - 在类中实现花式索引

python - 如何在 Matplotlib 的子图中单独绘制相同的图形?

python - 了解 Sklearn 中 Tfidfvectorizer 的矩阵输出

python - 在 Pyplot 中,一旦绘图已经绘制完成,我们如何更改绘图的线宽?

python - Matplotlib:字幕位置错误且图例不可见