我有多个图,并且希望有一个功能可以切换选定图的网格线的可见性。到目前为止,我可以根据定义的输入值(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)
否则,我需要将可见性值存储在列表中以进行切换。
答案 0 :(得分:0)
简短答案:可见性可以在ax.yaxis._gridOnMajor
中找到“主要”网格。我不知道主要/次要之间有什么区别,但是可以。
切换可以通过以下方式实现:
ax.xaxis.grid(not ax.xaxis._gridOnMajor)
注意:_gridOnMajor是(x / y)轴类的受保护成员;所以在访问时应该小心