ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 交互式导航 > 原文:[Interactive navigation](http://matplotlib.org/users/navigation_toolbar.html) > 译者:[飞龙](https://github.com/) > 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) ![](http://matplotlib.org/_images/toolbar.png) 所有图形窗口都带有导航工具栏,可用于浏览数据集。 以下是工具栏底部的每个按钮的说明: ![](http://matplotlib.org/_images/back.png) `Home`(首页)、`Forward`(前进)和`Back`(后退)按钮: 这些类似于 Web 浏览器的前进和后退按钮。 它们用于在之前定义的视图之间来回浏览。 它们没有意义,除非你已经使用平移和缩放按钮访问了其他地方。 这类似于尝试在访问新页面之前单击 Web 浏览器上的返回 - 什么都不会发生。 首页总是你第一个浏览的页面,以及你的数据的默认视图。 对于`Home`,`Forward`和`Back`,应该将其看做 Web浏览器,其中的数据视图是网页。 使用`Pan`和`Zoom`来定义新视图。 ![](http://matplotlib.org/_images/move.png) `Pan/Zoom`(平移/缩放)按钮 此按钮有两种模式:平移和缩放。 单击工具栏按钮激活平移和缩放,然后将鼠标放在轴域的某个地方。 按住鼠标左键并将其拖动到新位置来平移图形。 当你释放它时,你按下的点处的数据将移动到你释放的点。 如果在平移时按`'x'`或`'y'`,移动会分别限制在`x`或`y`轴。 按鼠标右键并将其拖动到新位置来进行缩放。 向右移动使`x`轴成比例放大,或者向左移动成比例缩小。 `y`轴和上/下移动同上。 开始缩放时鼠标下的点会保持静止,你可以缩放图形中的其它任意点。 你可以使用快捷键`'x'`,`'y'`或`CONTROL`分别将缩放约束为`x`轴,`y`轴或保留宽高比。 使用极坐标绘图时,平移和缩放功能的行为不同。 可以使用鼠标左键拖动半径轴标签。 可以使用鼠标右键放大和缩小半径刻度。 ![](http://matplotlib.org/_images/zoom_to_rect.png) `Zoom-to-rectangle`(缩放到矩形)按钮 单击此工具栏按钮以激活此模式。 将鼠标放在轴域的某处,然后按鼠标左键。 在按住按钮的同时拖动鼠标到新位置并释放。 轴域会放大并限制于你定义的矩形。 在此模式中还有一个实验性的`zoom out to rectangle`(缩小到矩形),使用右键,将整个轴域缩小并放置在矩形定义的区域中。 ![](http://matplotlib.org/_images/subplots.png) `Subplot-configuration`(子图配置)按钮 使用此工具配置子图的参数:左边距,右边距,上边距,下边距,行间隔和列间隔。 ![](http://matplotlib.org/_images/filesave.png) `Save`(保存)按钮 单击此按钮可启动文件保存对话框。 你可以使用以下扩展名保存文件:`png`,`ps`,`eps`,`svg`和`pdf`。 ## 浏览快捷键 下表包含所有默认的快捷键,可以使用`matplotlibrc`(`#keymap.*`)覆盖。 | 命令 | 快捷键 | | --- | --- | | 主页/重置 | `h`、`r`或`home` | | 后退 | `c`、左箭头或`backspace` | | 前进 | `v`或右箭头 | | 平移/缩放 | `p` | | 缩放到矩形 | `o` | | 保存 | `ctrl + s` | | 切换全屏 | `ctrl + f` | | 关闭绘图 | `ctrl + w` | | 将平移/缩放限制于`x`轴 | 使用鼠标平移/缩放时按住`x` | | 将平移/缩放限制于`y`轴 | 使用鼠标平移/缩放时按住`y` | | 保留宽高比 | 使用鼠标平移/缩放时按住`CONTROL` | | 切换网格 | 鼠标在轴域上时按下`g` | | 切换`x`轴刻度(对数/线性) | 鼠标在轴域上时按下`L`或`k` | | 切换`y`轴刻度(对数/线性) | 鼠标在轴域上时按下`l` | 如果你使用`matplotlib.pyplot`,则会为每个图形自动创建工具栏。 如果你正在编写自己的用户界面代码,则可以将工具栏添加为窗口小部件。 确切的语法取决于你的 UI,但在`matplotlib/examples/user_interfaces目录中有每个受支持的 UI 的示例。 这里是一些 GTK 的示例代码: ```py import gtk from matplotlib.figure import Figure from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas from matplotlib.backends.backend_gtkagg import NavigationToolbar2GTKAgg as NavigationToolbar win = gtk.Window() win.connect("destroy", lambda x: gtk.main_quit()) win.set_default_size(400,300) win.set_title("Embedding in GTK") vbox = gtk.VBox() win.add(vbox) fig = Figure(figsize=(5,4), dpi=100) ax = fig.add_subplot(111) ax.plot([1,2,3]) canvas = FigureCanvas(fig) # a gtk.DrawingArea vbox.pack_start(canvas) toolbar = NavigationToolbar(canvas, win) vbox.pack_start(toolbar, False, False) win.show_all() gtk.main() ```