我正在使用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
我在Ubuntu 14.04 64位桌面版机器上使用Python 2.7,从默认存储库安装了matplotlib(如果相关,我可以查找版本)。
4条答案
按热度按时间k3fezbri1#
实际上,@tcaswell说这个功能不存在是正确的,所以它返回false。你试过绘图窗口上的缩放到矩形按钮吗?这工作完美。如果您还没有,请参考Interactive Navigation上的matplotlib说明。可以使用两种方式放大:
1.点击平移/缩放按钮:
按鼠标右键进行缩放,将其拖动到新位置。x轴将与向右移动成比例地放大,并与向左移动成比例地缩小。
1.单击缩放到矩形按钮:
把你的鼠标放在某个地方,然后按下鼠标左键.按住按钮的同时拖动鼠标到新位置,然后松开。
cnh2zyt32#
除了缩放功能之外,您还可以控制轴的限制,如
如果将RADIUS变量定义得较小,则可以更近距离地查看数据。在本例中,可以放大和缩小原点。您可以选择其他焦点,但需要计算适当的限制以获得所需的视图。希望这能帮上忙。
我不确定它在python2中是否有效,因为我没有这样的环境。
evrscar23#
我发现在
matplotlib 3.3.4
中,你可以使用鼠标的左键(而不是右键来执行放大)来绘制一个矩形,在缩放过程结束后拔掉右键。在此之后,图像将缩小。至少对于matplotlib的使用是这样的:
matplotlib.use("Qt5Agg")
matplotlib.backends.backend_qt5agg.NavigationToolbar2QT
。sycxhyv74#
你也可以拖动鼠标上的滚轮来缩放。