python-3.x - 如何从轴获取网格线的可见性?
问题描述
我有多个图,并且想要一个功能来切换选定图的网格线的可见性。到目前为止,我可以根据定义的输入值(真/假)设置可见性。但我想切换网格线,因为这些图是动态生成/销毁的。
我查看了 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)
否则我需要将可见性值存储在列表中以切换它们。
解决方案
简短回答:可见性可以在ax.yaxis._gridOnMajor
“主要”网格中找到。我不知道主要/次要之间的区别是什么,但它有效。
切换可以通过以下方式实现:
ax.xaxis.grid(not ax.xaxis._gridOnMajor)
注意:_gridOnMajor 是 (x/y)axis 类的受保护成员;所以在访问时应该小心
推荐阅读
- python - 如何在 cx_freeze 中包含 Ghostscript
- laravel - 在 Laravel 中使用 Guzzle 和 POST
- model - 每次迭代后保存 PyTorch VGG 模型的权重
- amazon-web-services - 有没有办法最小化 CloudFront 图像响应的大小?
- php - 比较时间并在php中发送通知
- python - Python:理解 os.listdir() 方法
- javascript - 多个按钮单击中间禁用
- javascript - 屏幕分辨率与 cookie 收集有何关系?
- django - 浏览器如何检索 Django 自定义小部件资产?
- c++ - 调用类的成员函数时类的对象损坏