0

对于我个人的使用,我多次修改了 matplotlib gtk 后端(也是 tk 和 wx),用笔记本替换了窗口。这是因为我同时使用了太多的地块

这一次,我觉得我可以接受挑战,为我的更改提出拉取请求。但我想尽可能干净。这就是我需要建议的地方(清洁是关键)。

我想将我的类 TabbedFigureManagerGTK3 放在 backend_gtk3.py

问题是使用

matplotlib.use('gtk3cairo')

或者

matplotlib.use('gtk3agg')

指示指定的后端(gtk3cairo 或 gtk3agg)使用 backend_gtk3.FigureManagerGTK3

我不想复制backend_gtk3agg.pybackend_gtk3cairo.py只是为了更改对 backend_gtk3.FigureManagerGTK3 的调用

我想实现一个解决方案,允许用户将选项传递给后端,然后从那里选择传统的 FigureManagerGTK3 或我的 TabbedFigureManagerGTK3

我正在寻找一个关于如何做的建议,它有更多的机会被上游接受(在拉取请求和整个 shebang 之后)。

  1. 我是否修改 matplotlib.use 以添加类似 **kwargs 的内容?

  2. 我是否只是重新创建整个backend_gtk3agg.pybackend_gtk3cairo.py(当然是子类化)

  3. 我是否忘记了试图让这个被接受并打破编码指南

谢谢费德里科

4

1 回答 1

1

这听起来确实是一个不错的功能。

我将通过修改现有管理器并遵循PySidevsPyQt问题的处理方式来做到这一点(通过使用辅助 rcParams 来控制后端导入哪个)。在您的情况下,我会添加backend.gtk3.tabbed或类似名称的东西,它控制经理的行为方式。

编写您的修改,以便尽可能少地更改现有 api(破坏向后兼容性是行不通的)并使其不明确启用您的更改的用户甚至不知道它们在那里。

还通过电子邮件发送开发人员列表,他们都非常友好。或者只是打开一个 PR,这是获得反馈的最有效方式。

于 2013-09-11T23:35:27.987 回答