web-dev-qa-db-ja.com

MatplotlibでAxes3Dを使用してズームする方法

Matplotlibを使用して3Dプロットを生成しています。興味のある分野にズームインできるようにしたい。現在、パンはできますがズームはできません。 mplot3d APIを見て、私はcan_pan():について学びました。

_Return True if this axes supports the pan/zoom button functionality.

3D axes objects do not use the pan/zoom button.
_

およびcan_zoom():

_Return True if this axes supports the zoom box button functionality.

3D axes objects do not use the zoom box button.
_

どちらもFalseを返します(軸は両方をパンおよびズームできないため、can_panはFalseを返すと思いますが、APIを間違って読み取っている可能性があります)。

ズームを有効にする方法はありますか? APIは、ボタンを使用しないことを示しています。ズームを有効にする、またはcan_pan()can_zoom()Trueを返すように設定する方法はありますか?

コードのスニペットは次のとおりです。

_import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

data = np.genfromtxt('data_file.txt')

fig1 = plt.figure()
ax1 = fig1.gca(projection='3d')
ax1.scatter(data[:,0],data[:,1],data[:,2], c='r', marker='.')
plt.show()

ax1.can_zoom()
>>> False

ax1.can_pan()
>>> False
_

デフォルトのリポジトリからmatplotlibがインストールされているUbuntu14.0464ビットデスクトップバージョンのマシンでPython 2.7を使用しています(適切な場合はバージョンを検索できます)。

13

実際、@ tcaswellはこの機能が存在しないことは正しいので、falseを返します。プロットウィンドウの[長方形にズーム]ボタンを試しましたか?それは完璧に機能します。まだ読んでいない場合は、 インタラクティブナビゲーション のmatplotlibの説明を参照してください。 2つの方法を使用してズームインできます。

  1. パン/ズームボタンをクリックする:

    マウスの右ボタンを押してズームし、新しい位置にドラッグします。 x軸は、右方向の動きに比例してズームアウトされ、左方向の動きに比例してズームアウトされます。

  2. 長方形にズームボタンをクリックします。

    マウスをどこかに置き、軸を動かして、マウスの左ボタンを押します。ボタンを押したままマウスを新しい場所にドラッグして放します。

11