mpl-third-paryへの登録
僕は基本matplotlibを使って論文等のFigureを作るのだが、たまに、目的の図を描くための既存ライブラリがなく、自分用にツールを作る羽目になることがある。最近、これらのツールが他人の役に立つこともあるかなと思い、2つのツール(patchworklibとpyCircos)をmpl-third-party に登録してみたので、その手順をメモしておく。
ついでに、登録するとmatplotlib公式がTwitterで宣伝してくれる。実際に今回登録したpatchworklibとpyCircosのmaplotlib公式による宣伝tweetが以下のものである。
patchworklibの宣伝Tweet
Our awesome 3rd party package listing page https://t.co/T2DVwRUW7F constantly has new gems, for example Mori Hideto implemented operator based subplot composition (like patchwork) as https://t.co/mmEjNsVL2T pic.twitter.com/LBQ0Z7Zxsj
— Matplotlib (@matplotlib) January 13, 2022
pycircosの宣伝Tweet
More cool libraries c/o our third party page, this one a package by @Morihideponn for visualizing circular genomes https://t.co/ZkdbDpm8in
— Matplotlib (@matplotlib) January 16, 2022
As always, let us know about yours by opening a PR on https://t.co/T2DVwRUW7F pic.twitter.com/n564mAOl03
登録の手順
登録の手順は全てgithubのweb上で完結できる。
1. GitHub - matplotlib/mpl-third-party: Webpage のrepositoryをForkする。
2. Forkしたレポジトリで、./packagesに ”[追加したいpackageの名前].yml” を追加する。ymlの中身は最低限の以下の4項目が記述されていればいいっぽい。
repo: ponnhide/patchworklib #githubのrepository path([user_name]/[repository_name])
site: https://github.com/ponnhide/patchworklib #DocumentのURL。特別にDocumentを用意していないのであれば、githubのrepositoryのURLで問題なし。
section: plotting utilities #section名。利用可能なsection名は、https://github.com/matplotlib/mpl-third-party/blob/main/section_names.yml から確認できる。
description: A subplot manager for intuitive layouts #短い説明分。多分長すぎると短くさせられる。
3. ymlを追加したら、commitする。フォークしてあるのでmain branchにcommitしてしまって、特に問題はない。
4. フォークしたレポジトリのページからからpull requestを選択。以下のように、fork元であるmatplotlib/mpl-third-partyに対してpull requestを行うこと。
5. 追加したいpackageについての簡単な説明を求められるので、説明を書く。私の場合は https://github.com/matplotlib/mpl-third-party/pull/104 のように、簡単なsample codeと結果の図を載せたのだが、他の人の例をみるともっとsimpleで良かったらしい。
6. Create Pull Requestしておしまい。
正直なところ、今回登録してみたpatchworklibとpyCircosはgithubのスター数が100にも達していないショボいものだったので、pull requestがrejectされるのではないかと危惧していた。しかし、ものの数時間でmergeされたばかりか、twitterでも宣伝してくれるという親切対応であった。
maptlotlibは色々な図が作れるものも、コードが煩雑に成りがちであり、自作パッケージを作って対処している人も多いのではないだろうか。僕自身、これまでは、そうしたパッケージを作っては眠らせてしまっていた。しかし、公開してみると、意外と反応があり、似たようなことで困ってる人は世界にそこそこいたんだなぁ知ることができた。もし、論文や学会で発表するほどではないが、便利な描画ツールを作れた!という人は登録してみると良いかもしれない。きっと、数人の不毛な時間を減らす一助になるだろう。