2

同じ図上にないプロットの共有軸を作成する方法に関するtcaswell からの以前の回答は完璧でした:) (複数のグラフがあり、ユーザーがクリックしてこれらの共有軸を無効/有効にできるボタンを追加したい)方法を見つけました:

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
fig2 = plt.figure()
ax2 = fig2.add_subplot(111, sharex=ax1)

共有軸を作成してから

fig2.delaxes(ax2)
ax2 = fig2.add_subplot(111)

ただし、これにはすべてを再描画する必要があり、時間がかかる場合があります。リンクを無効にする簡単な機能が見つかりませんでした。私がしたことよりも軽い方法はありますか?

ありがとう !

4

3 に答える 3

11

できるよ:

ax2.get_shared_x_axes().remove(ax1)

参考文献:

于 2018-04-10T19:42:52.727 に答える
4

これを行うための既存の簡単な方法はありませんが、それは可能matplotlibだと思います(内部を少し掘り下げるだけです)。軸が下にリンクされる方法は、両方に同じロケーターオブジェクトとフォーマッターオブジェクトを使用することですaxis。リンク/リンク解除するには、これらのオブジェクトをすべてコピー/新規作成する必要があります。また、いくつかの補助構造(_shared_x_axes_shared_y_axes)を更新する必要があります。の実装を見て、matplotlib.axes.Axes.cla()何をする必要があるかについてのアイデアを見つけてください。

この機能と関連する機能リクエストを追加するリポジトリに対するプルリクエストがあります。a)ソースからインストールするb)マスターを使用するc)このパッチを適用することに慣れている場合、開発者はこれをテストしていただければ幸いです。

于 2013-01-24T16:03:36.113 に答える