如何从轴获取网格线的可见性?

时间:2019-02-06 10:58:26

标签: python-3.x

我有多个图,并且希望有一个功能可以切换选定图的网格线的可见性。到目前为止,我可以根据定义的输入值(True / False)设置可见性。但是我想切换网格线,因为情节是动态生成/破坏的。

我浏览了matplotlib-api,但是没有找到返回网格可见性的函数。 ax.xaxis.get_gridlines()返回网格线列表,但不提供可见性信息。

到目前为止,我的代码:

def toggle(key, val):
    if key == "grid":
        ax.grid(val)
    elif key == "xgrid":
        ax.grid(val, axis="x")
    elif key == "ygrid":
        ax.grid(val, axis="y")
    redraw()

最好检索以下可见性:

visibility = ax.grid.get_visibility()
ax.grid(not visibility)

否则,我需要将可见性值存储在列表中以进行切换。

1 个答案:

答案 0 :(得分:0)

简短答案:可见性可以在ax.yaxis._gridOnMajor中找到“主要”网格。我不知道主要/次要之间有什么区别,但是可以。

切换可以通过以下方式实现:

ax.xaxis.grid(not ax.xaxis._gridOnMajor)

注意:_gridOnMajor是(x / y)轴类的受保护成员;所以在访问时应该小心